Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-11-30 06:10:24 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-11-30 06:10:24 +0300
commit322b7f2d405e03f837e6c4e637793aad1fd5fd20 (patch)
tree60dd468f70370aa0cd936f5dd9650d5e246da83c
parent0b54e3118075c2fc5f1f01b434b4694720597211 (diff)
Add latest changes from gitlab-org/gitlab@master
-rw-r--r--GITALY_SERVER_VERSION2
-rw-r--r--Gemfile4
-rw-r--r--Gemfile.checksum4
-rw-r--r--Gemfile.lock8
-rw-r--r--app/views/projects/_transfer.html.haml4
-rw-r--r--app/views/projects/edit.html.haml2
-rw-r--r--app/views/projects/forks/index.html.haml1
-rw-r--r--app/views/projects/settings/_archive.html.haml4
-rw-r--r--config/metrics/counts_28d/20210201124930_deployments.yml3
-rw-r--r--config/metrics/counts_28d/20210216175132_i_code_review_user_create_mr_monthly.yml3
-rw-r--r--config/metrics/counts_28d/20210216181050_packages.yml3
-rw-r--r--config/metrics/counts_28d/20210216181923_successful_deployments.yml3
-rw-r--r--config/metrics/counts_28d/20210216181924_failed_deployments.yml3
-rw-r--r--config/metrics/counts_28d/20210216184458_p_ci_templates_implicit_auto_devops_monthly.yml2
-rwxr-xr-xconfig/metrics/counts_28d/20210216184559_ci_templates_total_unique_counts_monthly.yml3
-rw-r--r--config/metrics/counts_28d/20211126090835_p_analytics_ci_cd_deployment_frequency_monthly.yml3
-rw-r--r--config/metrics/counts_7d/20210423005644_i_analytics_dev_ops_adoption.yml2
-rw-r--r--config/metrics/counts_all/20210216175039_merge_requests.yml3
-rw-r--r--config/metrics/counts_all/20210216175510_ci_builds.yml3
-rw-r--r--config/metrics/counts_all/20210216175516_ci_pipeline_config_auto_devops.yml3
-rw-r--r--config/metrics/counts_all/20210216175520_ci_runners.yml3
-rw-r--r--config/metrics/counts_all/20210216175645_projects_bamboo_active.yml3
-rw-r--r--config/metrics/counts_all/20210216175804_projects_drone_ci_active.yml3
-rw-r--r--config/metrics/counts_all/20210216175932_projects_jenkins_active.yml3
-rw-r--r--config/metrics/counts_all/20210216175943_projects_jira_active.yml3
-rw-r--r--config/metrics/counts_all/20210216181249_feature_flags.yml3
-rw-r--r--config/metrics/counts_all/20210216181256_todos.yml3
-rw-r--r--config/metrics/counts_all/20210216181914_environments.yml3
-rw-r--r--config/metrics/counts_all/20210216182004_commit_comment.yml3
-rw-r--r--config/metrics/counts_all/20210216183000_package_events_i_package_pull_package_by_guest.yml3
-rw-r--r--config/metrics/counts_all/20210216183005_package_events_i_package_push_package_by_deploy_token.yml3
-rw-r--r--config/metrics/settings/20210204124858_container_registry_enabled.yml3
-rw-r--r--config/metrics/settings/20210204124902_gitlab_shared_runners_enabled.yml3
-rw-r--r--config/metrics/settings/20210216180913_enabled.yml3
-rw-r--r--data/deprecations/15-6-deprecate-post-api-v4-runner.yml2
-rw-r--r--data/deprecations/15-6-deprecate-runner-register-command.yml2
-rw-r--r--data/deprecations/15-6-deprecate-runner-register-token-k8s-operator.yml2
-rw-r--r--doc/administration/audit_event_streaming.md11
-rw-r--r--doc/administration/geo/replication/datatypes.md2
-rw-r--r--doc/administration/inactive_project_deletion.md2
-rw-r--r--doc/administration/packages/container_registry.md2
-rw-r--r--doc/administration/pages/troubleshooting.md2
-rw-r--r--doc/administration/settings/visibility_and_access_controls.md2
-rw-r--r--doc/api/projects.md2
-rw-r--r--doc/ci/runners/new_creation_workflow.md2
-rw-r--r--doc/ci/runners/register_runner.md11
-rw-r--r--doc/development/audit_event_guide/index.md2
-rw-r--r--doc/development/internal_analytics/service_ping/metrics_dictionary.md11
-rw-r--r--doc/development/internal_analytics/service_ping/metrics_lifecycle.md11
-rw-r--r--doc/development/internal_analytics/service_ping/performance_indicator_metrics.md11
-rw-r--r--doc/gitlab-basics/add-file.md108
-rw-r--r--doc/integration/security_partners/index.md11
-rw-r--r--doc/integration/slash_commands.md11
-rw-r--r--doc/raketasks/backup_gitlab.md14
-rw-r--r--doc/raketasks/backup_restore.md14
-rw-r--r--doc/raketasks/restore_gitlab.md14
-rw-r--r--doc/topics/git/git_add.md12
-rw-r--r--doc/topics/git/rollback_commits.md48
-rw-r--r--doc/topics/git/stash.md30
-rw-r--r--doc/topics/git/unstage.md25
-rw-r--r--doc/topics/git/useful_git_commands.md57
-rw-r--r--doc/tutorials/move_personal_project_to_group/index.md2
-rw-r--r--doc/update/deprecations.md6
-rw-r--r--doc/update/removals.md11
-rw-r--r--doc/user/admin_area/analytics/dev_ops_reports.md11
-rw-r--r--doc/user/admin_area/analytics/index.md11
-rw-r--r--doc/user/admin_area/analytics/usage_trends.md11
-rw-r--r--doc/user/admin_area/appearance.md11
-rw-r--r--doc/user/admin_area/broadcast_messages.md11
-rw-r--r--doc/user/admin_area/credentials_inventory.md11
-rw-r--r--doc/user/admin_area/labels.md11
-rw-r--r--doc/user/admin_area/settings/floc.md11
-rw-r--r--doc/user/admin_area/settings/git_lfs_rate_limits.md11
-rw-r--r--doc/user/admin_area/settings/gitaly_timeouts.md11
-rw-r--r--doc/user/admin_area/settings/help_page.md11
-rw-r--r--doc/user/admin_area/settings/import_export_rate_limits.md11
-rw-r--r--doc/user/application_security/continuous_vulnerability_scanning/index.md10
-rw-r--r--doc/user/application_security/dependency_scanning/analyzers.md11
-rw-r--r--doc/user/compliance/compliance_report/index.md11
-rw-r--r--doc/user/custom_roles.md2
-rw-r--r--doc/user/packages/container_registry/troubleshoot_container_registry.md2
-rw-r--r--doc/user/profile/index.md2
-rw-r--r--doc/user/project/index.md2
-rw-r--r--doc/user/project/repository/index.md22
-rw-r--r--doc/user/project/settings/index.md199
-rw-r--r--doc/user/project/settings/migrate_projects.md127
-rw-r--r--doc/user/project/settings/project_features_permissions.md31
-rw-r--r--doc/user/project/working_with_projects.md37
-rw-r--r--qa/qa/page/main/login.rb12
-rw-r--r--qa/qa/specs/features/browser_ui/3_create/repository/push_over_ssh_spec.rb6
90 files changed, 433 insertions, 718 deletions
diff --git a/GITALY_SERVER_VERSION b/GITALY_SERVER_VERSION
index 90603e12a36..0b564deaff7 100644
--- a/GITALY_SERVER_VERSION
+++ b/GITALY_SERVER_VERSION
@@ -1 +1 @@
-3cd2a30b770d3312a1634d8eec49e34a592ef5d7
+251acb8c75aa66481893bf775a44cba669ccc3c9
diff --git a/Gemfile b/Gemfile
index d6f3dc2d5af..b2ed5bff1eb 100644
--- a/Gemfile
+++ b/Gemfile
@@ -385,7 +385,7 @@ gem 'prometheus-client-mmap', '~> 1.0', require: 'prometheus/client' # rubocop:t
gem 'warning', '~> 1.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
group :development do
- gem 'lefthook', '~> 1.5.3', require: false, feature_category: :tooling
+ gem 'lefthook', '~> 1.5.4', require: false, feature_category: :tooling
gem 'rubocop', feature_category: :tooling
gem 'solargraph', '~> 0.47.2', require: false # rubocop:todo Gemfile/MissingFeatureCategory
@@ -506,7 +506,7 @@ group :test do
# Moved in `test` because https://gitlab.com/gitlab-org/gitlab/-/issues/217527
gem 'derailed_benchmarks', require: false # rubocop:todo Gemfile/MissingFeatureCategory
- gem 'gitlab_quality-test_tooling', '~> 1.5.4', require: false, feature_category: :tooling
+ gem 'gitlab_quality-test_tooling', '~> 1.7.0', require: false, feature_category: :tooling
end
gem 'octokit', '~> 6.0' # rubocop:todo Gemfile/MissingFeatureCategory
diff --git a/Gemfile.checksum b/Gemfile.checksum
index 289c32d748c..fd1e897494c 100644
--- a/Gemfile.checksum
+++ b/Gemfile.checksum
@@ -221,7 +221,7 @@
{"name":"gitlab-styles","version":"11.0.0","platform":"ruby","checksum":"0dd8ec066ce9955ac51d3616c6bfded30f75bb526f39ff392ece6f43d5b9406b"},
{"name":"gitlab_chronic_duration","version":"0.12.0","platform":"ruby","checksum":"0d766944d415b5c831f176871ee8625783fc0c5bfbef2d79a3a616f207ffc16d"},
{"name":"gitlab_omniauth-ldap","version":"2.2.0","platform":"ruby","checksum":"bb4d20acb3b123ed654a8f6a47d3fac673ece7ed0b6992edb92dca14bad2838c"},
-{"name":"gitlab_quality-test_tooling","version":"1.5.4","platform":"ruby","checksum":"c8e65bf89030a4e3301929c4dd707abd97a3c1d523d8119824b0c29b5c78fd98"},
+{"name":"gitlab_quality-test_tooling","version":"1.7.0","platform":"ruby","checksum":"41c6ab424a50215635671156738fb619f02c15c87c6f0c9f81e9b785fb583962"},
{"name":"globalid","version":"1.1.0","platform":"ruby","checksum":"b337e1746f0c8cb0a6c918234b03a1ddeb4966206ce288fbb57779f59b2d154f"},
{"name":"gon","version":"6.4.0","platform":"ruby","checksum":"e3a618d659392890f1aa7db420f17c75fd7d35aeb5f8fe003697d02c4b88d2f0"},
{"name":"google-apis-androidpublisher_v3","version":"0.34.0","platform":"ruby","checksum":"d7e1d7dd92f79c498fe2082222a1740d788e022e660c135564b3fd299cab5425"},
@@ -335,7 +335,7 @@
{"name":"kubeclient","version":"4.11.0","platform":"ruby","checksum":"4985fcd749fb8c364a668a8350a49821647f03aa52d9ee6cbc582beb8e883fcc"},
{"name":"language_server-protocol","version":"3.17.0.3","platform":"ruby","checksum":"3d5c58c02f44a20d972957a9febe386d7e7468ab3900ce6bd2b563dd910c6b3f"},
{"name":"launchy","version":"2.5.0","platform":"ruby","checksum":"954243c4255920982ce682f89a42e76372dba94770bf09c23a523e204bdebef5"},
-{"name":"lefthook","version":"1.5.3","platform":"ruby","checksum":"73d76619288528ab18abfa8f5726a1beb1674ba463a92f27849ba140e06651b5"},
+{"name":"lefthook","version":"1.5.4","platform":"ruby","checksum":"d9220647626fcfda95f92e7bcf5a3143ee2b7e8b4baa3d1106992743daa135f3"},
{"name":"letter_opener","version":"1.7.0","platform":"ruby","checksum":"095bc0d58e006e5b43ea7d219e64ecf2de8d1f7d9dafc432040a845cf59b4725"},
{"name":"letter_opener_web","version":"2.0.0","platform":"ruby","checksum":"33860ad41e1785d75456500e8ca8bba8ed71ee6eaf08a98d06bbab67c5577b6f"},
{"name":"libyajl2","version":"2.1.0","platform":"ruby","checksum":"aa5df6c725776fc050c8418450de0f7c129cb7200b811907c4c0b3b5c0aea0ef"},
diff --git a/Gemfile.lock b/Gemfile.lock
index eb6a644b9d0..afbb14c39db 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -716,7 +716,7 @@ GEM
omniauth (>= 1.3, < 3)
pyu-ruby-sasl (>= 0.0.3.3, < 0.1)
rubyntlm (~> 0.5)
- gitlab_quality-test_tooling (1.5.4)
+ gitlab_quality-test_tooling (1.7.0)
activesupport (>= 6.1, < 7.2)
amatch (~> 0.4.1)
gitlab (~> 4.19)
@@ -979,7 +979,7 @@ GEM
language_server-protocol (3.17.0.3)
launchy (2.5.0)
addressable (~> 2.7)
- lefthook (1.5.3)
+ lefthook (1.5.4)
letter_opener (1.7.0)
launchy (~> 2.2)
letter_opener_web (2.0.0)
@@ -1884,7 +1884,7 @@ DEPENDENCIES
gitlab-utils!
gitlab_chronic_duration (~> 0.12)
gitlab_omniauth-ldap (~> 2.2.0)
- gitlab_quality-test_tooling (~> 1.5.4)
+ gitlab_quality-test_tooling (~> 1.7.0)
gon (~> 6.4.0)
google-apis-androidpublisher_v3 (~> 0.34.0)
google-apis-cloudbilling_v1 (~> 0.21.0)
@@ -1937,7 +1937,7 @@ DEPENDENCIES
knapsack (~> 1.21.1)
kramdown (~> 2.3.1)
kubeclient (~> 4.11.0)
- lefthook (~> 1.5.3)
+ lefthook (~> 1.5.4)
letter_opener_web (~> 2.0.0)
license_finder (~> 7.0)
licensee (~> 9.16)
diff --git a/app/views/projects/_transfer.html.haml b/app/views/projects/_transfer.html.haml
index 43bb3627c4f..d8b1931756e 100644
--- a/app/views/projects/_transfer.html.haml
+++ b/app/views/projects/_transfer.html.haml
@@ -8,14 +8,14 @@
.gl-new-card-title-wrapper
%h4.gl-new-card-title.warning-title= _('Transfer project')
%p.gl-new-card-description
- - link = link_to('', help_page_path('user/project/settings/index', anchor: 'transfer-a-project-to-another-namespace'), target: '_blank', rel: 'noopener noreferrer')
+ - link = link_to('', help_page_path('user/project/settings/migrate_projects', anchor: 'transfer-a-project-to-another-namespace'), target: '_blank', rel: 'noopener noreferrer')
= safe_format(_("Transfer your project into another namespace. %{link_start}Learn more.%{link_end}"), tag_pair(link, :link_start, :link_end))
- c.with_body do
= form_for @project, url: transfer_project_path(@project), method: :put, html: { class: 'js-project-transfer-form', id: form_id } do |f|
.form-group.gl-mb-0
%p
- - link = link_to('', help_page_path('user/project/settings/index', anchor: 'rename-a-repository'), target: '_blank', rel: 'noopener noreferrer')
+ - link = link_to('', help_page_path('user/project/working_with_projects', anchor: 'rename-a-repository'), target: '_blank', rel: 'noopener noreferrer')
= safe_format(_("A project’s repository name defines its URL (the one you use to access the project via a browser) and its place on the file disk where GitLab is installed. %{link_start}Learn more.%{link_end}"), tag_pair(link, :link_start, :link_end))
%p= _('When you transfer your project to a group, you can easily manage multiple projects, view usage quotas for storage, pipeline minutes, and users, and start a trial or upgrade to a paid tier.')
%p
diff --git a/app/views/projects/edit.html.haml b/app/views/projects/edit.html.haml
index 67ae5a0efa7..f0d410ffe9a 100644
--- a/app/views/projects/edit.html.haml
+++ b/app/views/projects/edit.html.haml
@@ -90,7 +90,7 @@
.gl-new-card-title-wrapper
%h4.gl-new-card-title.warning-title= _('Change path')
%p.gl-new-card-description
- - link = link_to('', help_page_path('user/project/settings/index', anchor: 'rename-a-repository'), target: '_blank', rel: 'noopener noreferrer')
+ - link = link_to('', help_page_path('user/project/working_with_projects', anchor: 'rename-a-repository'), target: '_blank', rel: 'noopener noreferrer')
= safe_format(_("A project’s repository name defines its URL (the one you use to access the project via a browser) and its place on the file disk where GitLab is installed. %{link_start}Learn more.%{link_end}"), tag_pair(link, :link_start, :link_end))
- c.with_body do
diff --git a/app/views/projects/forks/index.html.haml b/app/views/projects/forks/index.html.haml
index fe7d2c9d198..98055534a27 100644
--- a/app/views/projects/forks/index.html.haml
+++ b/app/views/projects/forks/index.html.haml
@@ -1,3 +1,4 @@
+- page_title _("Forks")
- sort_value = @sort || sort_value_recently_created
- excluded_filters = [:state, :scope, :label_name, :milestone_id, :assignee_id, :author_id]
- created_at = { value: sort_value_created_date, text: sort_title_created_date, href: page_filter_path(sort: sort_value_recently_created, without: excluded_filters) }
diff --git a/app/views/projects/settings/_archive.html.haml b/app/views/projects/settings/_archive.html.haml
index dcb37541a04..5336551cb82 100644
--- a/app/views/projects/settings/_archive.html.haml
+++ b/app/views/projects/settings/_archive.html.haml
@@ -11,12 +11,12 @@
- c.with_body do
- if @project.archived?
- - link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: help_page_path('user/project/settings/index', anchor: 'unarchive-a-project') }
+ - link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: help_page_path('user/project/settings/migrate_projects', anchor: 'unarchive-a-project') }
%p= _("Unarchiving the project restores its members' ability to make commits, and create issues, comments, and other entities. %{strong_start}After you unarchive the project, it displays in the search and on the dashboard.%{strong_end} %{link_start}Learn more.%{link_end}").html_safe % { strong_start: '<strong>'.html_safe, strong_end: '</strong>'.html_safe, link_start: link_start, link_end: '</a>'.html_safe }
= render Pajamas::ButtonComponent.new(method: :post, href: unarchive_project_path(@project), variant: :confirm, button_options: { aria: { label: _('Unarchive project') }, data: { confirm: _("Are you sure that you want to unarchive this project?"), testid: 'unarchive-project-link' } }) do
= _('Unarchive project')
- else
- - link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: help_page_path('user/project/settings/index', anchor: 'archive-a-project') }
+ - link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: help_page_path('user/project/settings/migrate_projects', anchor: 'archive-a-project') }
%p= _("Archiving the project makes it entirely read-only. It is hidden from the dashboard and doesn't display in searches. %{strong_start}The repository cannot be committed to, and no issues, comments, or other entities can be created.%{strong_end} %{link_start}Learn more.%{link_end}").html_safe % { strong_start: '<strong>'.html_safe, strong_end: '</strong>'.html_safe, link_start: link_start, link_end: '</a>'.html_safe }
= render Pajamas::ButtonComponent.new(method: :post, href: archive_project_path(@project), variant: :confirm, button_options: { aria: { label: _('Archive project') }, data: { confirm: _("Are you sure that you want to archive this project?"), testid: 'archive-project-link', 'confirm-btn-variant': 'confirm' } }) do
= _('Archive project')
diff --git a/config/metrics/counts_28d/20210201124930_deployments.yml b/config/metrics/counts_28d/20210201124930_deployments.yml
index bf38efedcd3..2d9432c0e0d 100644
--- a/config/metrics/counts_28d/20210201124930_deployments.yml
+++ b/config/metrics/counts_28d/20210201124930_deployments.yml
@@ -21,4 +21,5 @@ tier:
- free
- premium
- ultimate
-performance_indicator_type: []
+performance_indicator_type:
+- customer_health_score
diff --git a/config/metrics/counts_28d/20210216175132_i_code_review_user_create_mr_monthly.yml b/config/metrics/counts_28d/20210216175132_i_code_review_user_create_mr_monthly.yml
index 6da19fb6a93..f14964f5b76 100644
--- a/config/metrics/counts_28d/20210216175132_i_code_review_user_create_mr_monthly.yml
+++ b/config/metrics/counts_28d/20210216175132_i_code_review_user_create_mr_monthly.yml
@@ -23,5 +23,6 @@ tier:
- free
- premium
- ultimate
-performance_indicator_type: []
+performance_indicator_type:
+- customer_health_score
milestone: "<13.9"
diff --git a/config/metrics/counts_28d/20210216181050_packages.yml b/config/metrics/counts_28d/20210216181050_packages.yml
index bcfa88f9b6e..4cd3291457c 100644
--- a/config/metrics/counts_28d/20210216181050_packages.yml
+++ b/config/metrics/counts_28d/20210216181050_packages.yml
@@ -17,5 +17,6 @@ tier:
- free
- premium
- ultimate
-performance_indicator_type: []
+performance_indicator_type:
+- customer_health_score
milestone: "<13.9"
diff --git a/config/metrics/counts_28d/20210216181923_successful_deployments.yml b/config/metrics/counts_28d/20210216181923_successful_deployments.yml
index bed2969b14a..a7b702bbed7 100644
--- a/config/metrics/counts_28d/20210216181923_successful_deployments.yml
+++ b/config/metrics/counts_28d/20210216181923_successful_deployments.yml
@@ -19,5 +19,6 @@ tier:
- free
- premium
- ultimate
-performance_indicator_type: []
+performance_indicator_type:
+- customer_health_score
milestone: "<13.9"
diff --git a/config/metrics/counts_28d/20210216181924_failed_deployments.yml b/config/metrics/counts_28d/20210216181924_failed_deployments.yml
index a11c1be42f2..355669a2580 100644
--- a/config/metrics/counts_28d/20210216181924_failed_deployments.yml
+++ b/config/metrics/counts_28d/20210216181924_failed_deployments.yml
@@ -19,5 +19,6 @@ tier:
- free
- premium
- ultimate
-performance_indicator_type: []
+performance_indicator_type:
+- customer_health_score
milestone: "<13.9"
diff --git a/config/metrics/counts_28d/20210216184458_p_ci_templates_implicit_auto_devops_monthly.yml b/config/metrics/counts_28d/20210216184458_p_ci_templates_implicit_auto_devops_monthly.yml
index 7929ef37d7b..2bc014e55d2 100644
--- a/config/metrics/counts_28d/20210216184458_p_ci_templates_implicit_auto_devops_monthly.yml
+++ b/config/metrics/counts_28d/20210216184458_p_ci_templates_implicit_auto_devops_monthly.yml
@@ -21,3 +21,5 @@ tier:
- premium
- ultimate
milestone: "<13.9"
+performance_indicator_type:
+- customer_health_score
diff --git a/config/metrics/counts_28d/20210216184559_ci_templates_total_unique_counts_monthly.yml b/config/metrics/counts_28d/20210216184559_ci_templates_total_unique_counts_monthly.yml
index 97ff6a51c48..1847eaf86a7 100755
--- a/config/metrics/counts_28d/20210216184559_ci_templates_total_unique_counts_monthly.yml
+++ b/config/metrics/counts_28d/20210216184559_ci_templates_total_unique_counts_monthly.yml
@@ -188,6 +188,7 @@ tier:
- free
- premium
- ultimate
-performance_indicator_type: []
+performance_indicator_type:
+- customer_health_score
milestone: "<13.9"
removed_by_url:
diff --git a/config/metrics/counts_28d/20211126090835_p_analytics_ci_cd_deployment_frequency_monthly.yml b/config/metrics/counts_28d/20211126090835_p_analytics_ci_cd_deployment_frequency_monthly.yml
index 6569027515f..e151c55c1bc 100644
--- a/config/metrics/counts_28d/20211126090835_p_analytics_ci_cd_deployment_frequency_monthly.yml
+++ b/config/metrics/counts_28d/20211126090835_p_analytics_ci_cd_deployment_frequency_monthly.yml
@@ -12,7 +12,8 @@ time_frame: 28d
data_source: redis_hll
data_category: operational
instrumentation_class: RedisHLLMetric
-performance_indicator_type: []
+performance_indicator_type:
+- customer_health_score
events:
- name: p_analytics_ci_cd_deployment_frequency
unique: user.id
diff --git a/config/metrics/counts_7d/20210423005644_i_analytics_dev_ops_adoption.yml b/config/metrics/counts_7d/20210423005644_i_analytics_dev_ops_adoption.yml
index 3fa819ec1d2..9b7efed1b2b 100644
--- a/config/metrics/counts_7d/20210423005644_i_analytics_dev_ops_adoption.yml
+++ b/config/metrics/counts_7d/20210423005644_i_analytics_dev_ops_adoption.yml
@@ -24,3 +24,5 @@ tier:
- free
- premium
- ultimate
+performance_indicator_type:
+- customer_health_score
diff --git a/config/metrics/counts_all/20210216175039_merge_requests.yml b/config/metrics/counts_all/20210216175039_merge_requests.yml
index a08f20261ce..b9651ed0329 100644
--- a/config/metrics/counts_all/20210216175039_merge_requests.yml
+++ b/config/metrics/counts_all/20210216175039_merge_requests.yml
@@ -16,5 +16,6 @@ tier:
- free
- premium
- ultimate
-performance_indicator_type: []
+performance_indicator_type:
+- customer_health_score
milestone: "<13.9"
diff --git a/config/metrics/counts_all/20210216175510_ci_builds.yml b/config/metrics/counts_all/20210216175510_ci_builds.yml
index e8ea8707f0f..479df8fcf22 100644
--- a/config/metrics/counts_all/20210216175510_ci_builds.yml
+++ b/config/metrics/counts_all/20210216175510_ci_builds.yml
@@ -16,5 +16,6 @@ tier:
- free
- premium
- ultimate
-performance_indicator_type: []
+performance_indicator_type:
+- customer_health_score
milestone: "<13.9"
diff --git a/config/metrics/counts_all/20210216175516_ci_pipeline_config_auto_devops.yml b/config/metrics/counts_all/20210216175516_ci_pipeline_config_auto_devops.yml
index 3b896103527..a4d7c8fe7b1 100644
--- a/config/metrics/counts_all/20210216175516_ci_pipeline_config_auto_devops.yml
+++ b/config/metrics/counts_all/20210216175516_ci_pipeline_config_auto_devops.yml
@@ -16,5 +16,6 @@ tier:
- free
- premium
- ultimate
-performance_indicator_type: []
+performance_indicator_type:
+- customer_health_score
milestone: "<13.9"
diff --git a/config/metrics/counts_all/20210216175520_ci_runners.yml b/config/metrics/counts_all/20210216175520_ci_runners.yml
index f701a312446..606b8dd147f 100644
--- a/config/metrics/counts_all/20210216175520_ci_runners.yml
+++ b/config/metrics/counts_all/20210216175520_ci_runners.yml
@@ -16,6 +16,7 @@ tier:
- free
- premium
- ultimate
-performance_indicator_type: []
+performance_indicator_type:
+- customer_health_score
milestone: "<13.9"
instrumentation_class: CountCiRunnersMetric
diff --git a/config/metrics/counts_all/20210216175645_projects_bamboo_active.yml b/config/metrics/counts_all/20210216175645_projects_bamboo_active.yml
index 0e4fee17e6a..218e56109c1 100644
--- a/config/metrics/counts_all/20210216175645_projects_bamboo_active.yml
+++ b/config/metrics/counts_all/20210216175645_projects_bamboo_active.yml
@@ -16,5 +16,6 @@ tier:
- free
- premium
- ultimate
-performance_indicator_type: []
+performance_indicator_type:
+- customer_health_score
milestone: "<13.9"
diff --git a/config/metrics/counts_all/20210216175804_projects_drone_ci_active.yml b/config/metrics/counts_all/20210216175804_projects_drone_ci_active.yml
index 4a9f00fcb65..7685d13e3d7 100644
--- a/config/metrics/counts_all/20210216175804_projects_drone_ci_active.yml
+++ b/config/metrics/counts_all/20210216175804_projects_drone_ci_active.yml
@@ -16,5 +16,6 @@ tier:
- free
- premium
- ultimate
-performance_indicator_type: []
+performance_indicator_type:
+- customer_health_score
milestone: "<13.9"
diff --git a/config/metrics/counts_all/20210216175932_projects_jenkins_active.yml b/config/metrics/counts_all/20210216175932_projects_jenkins_active.yml
index 90f7f20bb83..88c8b518cfd 100644
--- a/config/metrics/counts_all/20210216175932_projects_jenkins_active.yml
+++ b/config/metrics/counts_all/20210216175932_projects_jenkins_active.yml
@@ -16,5 +16,6 @@ tier:
- free
- premium
- ultimate
-performance_indicator_type: []
+performance_indicator_type:
+- customer_health_score
milestone: "<13.9"
diff --git a/config/metrics/counts_all/20210216175943_projects_jira_active.yml b/config/metrics/counts_all/20210216175943_projects_jira_active.yml
index 2c09473aca2..248ec9c32ce 100644
--- a/config/metrics/counts_all/20210216175943_projects_jira_active.yml
+++ b/config/metrics/counts_all/20210216175943_projects_jira_active.yml
@@ -16,5 +16,6 @@ tier:
- free
- premium
- ultimate
-performance_indicator_type: []
+performance_indicator_type:
+- customer_health_score
milestone: "<13.9"
diff --git a/config/metrics/counts_all/20210216181249_feature_flags.yml b/config/metrics/counts_all/20210216181249_feature_flags.yml
index 076264f15ac..5100a862f90 100644
--- a/config/metrics/counts_all/20210216181249_feature_flags.yml
+++ b/config/metrics/counts_all/20210216181249_feature_flags.yml
@@ -16,5 +16,6 @@ tier:
- free
- premium
- ultimate
-performance_indicator_type: []
+performance_indicator_type:
+- customer_health_score
milestone: "<13.9"
diff --git a/config/metrics/counts_all/20210216181256_todos.yml b/config/metrics/counts_all/20210216181256_todos.yml
index 98fb0df53a5..57614d7f25e 100644
--- a/config/metrics/counts_all/20210216181256_todos.yml
+++ b/config/metrics/counts_all/20210216181256_todos.yml
@@ -16,5 +16,6 @@ tier:
- free
- premium
- ultimate
-performance_indicator_type: []
+performance_indicator_type:
+- customer_health_score
milestone: "<13.9"
diff --git a/config/metrics/counts_all/20210216181914_environments.yml b/config/metrics/counts_all/20210216181914_environments.yml
index 4ad72578b0e..23291383518 100644
--- a/config/metrics/counts_all/20210216181914_environments.yml
+++ b/config/metrics/counts_all/20210216181914_environments.yml
@@ -16,5 +16,6 @@ tier:
- free
- premium
- ultimate
-performance_indicator_type: []
+performance_indicator_type:
+- customer_health_score
milestone: "<13.9"
diff --git a/config/metrics/counts_all/20210216182004_commit_comment.yml b/config/metrics/counts_all/20210216182004_commit_comment.yml
index 82ad0e12b5f..e37dabb87ee 100644
--- a/config/metrics/counts_all/20210216182004_commit_comment.yml
+++ b/config/metrics/counts_all/20210216182004_commit_comment.yml
@@ -22,5 +22,6 @@ tier:
- free
- premium
- ultimate
-performance_indicator_type: []
+performance_indicator_type:
+- customer_health_score
milestone: "<13.9"
diff --git a/config/metrics/counts_all/20210216183000_package_events_i_package_pull_package_by_guest.yml b/config/metrics/counts_all/20210216183000_package_events_i_package_pull_package_by_guest.yml
index ffdc4e0cb8a..415f9f8cca6 100644
--- a/config/metrics/counts_all/20210216183000_package_events_i_package_pull_package_by_guest.yml
+++ b/config/metrics/counts_all/20210216183000_package_events_i_package_pull_package_by_guest.yml
@@ -23,5 +23,6 @@ tier:
- free
- premium
- ultimate
-performance_indicator_type: []
+performance_indicator_type:
+- customer_health_score
milestone: "<13.9"
diff --git a/config/metrics/counts_all/20210216183005_package_events_i_package_push_package_by_deploy_token.yml b/config/metrics/counts_all/20210216183005_package_events_i_package_push_package_by_deploy_token.yml
index 5f58ba81165..538a5a33c9a 100644
--- a/config/metrics/counts_all/20210216183005_package_events_i_package_push_package_by_deploy_token.yml
+++ b/config/metrics/counts_all/20210216183005_package_events_i_package_push_package_by_deploy_token.yml
@@ -23,5 +23,6 @@ tier:
- free
- premium
- ultimate
-performance_indicator_type: []
+performance_indicator_type:
+- customer_health_score
milestone: "<13.9"
diff --git a/config/metrics/settings/20210204124858_container_registry_enabled.yml b/config/metrics/settings/20210204124858_container_registry_enabled.yml
index f98b9cb96fb..469ba762cf5 100644
--- a/config/metrics/settings/20210204124858_container_registry_enabled.yml
+++ b/config/metrics/settings/20210204124858_container_registry_enabled.yml
@@ -20,5 +20,6 @@ tier:
- free
- premium
- ultimate
-performance_indicator_type: []
+performance_indicator_type:
+- customer_health_score
milestone: "<13.9"
diff --git a/config/metrics/settings/20210204124902_gitlab_shared_runners_enabled.yml b/config/metrics/settings/20210204124902_gitlab_shared_runners_enabled.yml
index dd9a623dc75..f1560eb01d1 100644
--- a/config/metrics/settings/20210204124902_gitlab_shared_runners_enabled.yml
+++ b/config/metrics/settings/20210204124902_gitlab_shared_runners_enabled.yml
@@ -20,5 +20,6 @@ tier:
- free
- premium
- ultimate
-performance_indicator_type: []
+performance_indicator_type:
+- customer_health_score
milestone: "<13.9"
diff --git a/config/metrics/settings/20210216180913_enabled.yml b/config/metrics/settings/20210216180913_enabled.yml
index f7ed9d04862..97ea6ccc5c5 100644
--- a/config/metrics/settings/20210216180913_enabled.yml
+++ b/config/metrics/settings/20210216180913_enabled.yml
@@ -16,5 +16,6 @@ tier:
- free
- premium
- ultimate
-performance_indicator_type: []
+performance_indicator_type:
+- customer_health_score
milestone: "<13.9"
diff --git a/data/deprecations/15-6-deprecate-post-api-v4-runner.yml b/data/deprecations/15-6-deprecate-post-api-v4-runner.yml
index 81c56d914d2..5b0feeba8a1 100644
--- a/data/deprecations/15-6-deprecate-post-api-v4-runner.yml
+++ b/data/deprecations/15-6-deprecate-post-api-v4-runner.yml
@@ -22,7 +22,7 @@
- `--tag-list`
- `--maintenance-note`
- This change is a breaking change. You should [create a runner in the UI](../ci/runners/register_runner.md) to add configurations, and use the authentication token in the `gitlab-runner register` command instead.
+ This change is a breaking change. You should [create a runner in the UI](../ci/runners/runners_scope.html) to add configurations, and use the authentication token in the `gitlab-runner register` command instead.
end_of_support_milestone: # (optional) Use "XX.YY" format. The milestone when support for this feature will end.
tiers: # (optional - may be required in the future) An array of tiers that the feature is available in currently. e.g., [Free, Silver, Gold, Core, Premium, Ultimate]
documentation_url: https://docs.gitlab.com/ee/api/runners.html#register-a-new-runner # (optional) This is a link to the current documentation page
diff --git a/data/deprecations/15-6-deprecate-runner-register-command.yml b/data/deprecations/15-6-deprecate-runner-register-command.yml
index 4fcde11ce16..93852ef8323 100644
--- a/data/deprecations/15-6-deprecate-runner-register-command.yml
+++ b/data/deprecations/15-6-deprecate-runner-register-command.yml
@@ -20,5 +20,5 @@
- `--tag-list`
- `--maintenance-note`
- This change is a breaking change. You should [create a runner in the UI](../ci/runners/register_runner.md) to add configurations, and use the authentication token in the `gitlab-runner register` command instead.
+ This change is a breaking change. You should [create a runner in the UI](../ci/runners/runners_scope.html) to add configurations, and use the authentication token in the `gitlab-runner register` command instead.
end_of_support_milestone: # (optional) Use "XX.YY" format. The milestone when support for this feature will end.
diff --git a/data/deprecations/15-6-deprecate-runner-register-token-k8s-operator.yml b/data/deprecations/15-6-deprecate-runner-register-token-k8s-operator.yml
index 5bbe75efa42..9b4aeded6fd 100644
--- a/data/deprecations/15-6-deprecate-runner-register-token-k8s-operator.yml
+++ b/data/deprecations/15-6-deprecate-runner-register-token-k8s-operator.yml
@@ -16,7 +16,7 @@
- `--run-untagged`
- `--tag-list`
- This change is a breaking change. You should use an [authentication token](../ci/runners/register_runner.md) in the `gitlab-runner register` command instead.
+ This change is a breaking change. You should use an [authentication token](../ci/runners/runners_scope.html) in the `gitlab-runner register` command instead.
end_of_support_milestone: # (optional) Use "XX.YY" format. The milestone when support for this feature will end.
tiers: # (optional - may be required in the future) An array of tiers that the feature is available in currently. e.g., [Free, Silver, Gold, Core, Premium, Ultimate]
documentation_url: https://docs.gitlab.com/runner/install/operator.html#install-the-kubernetes-operator # (optional) This is a link to the current documentation page
diff --git a/doc/administration/audit_event_streaming.md b/doc/administration/audit_event_streaming.md
deleted file mode 100644
index d6a6725210d..00000000000
--- a/doc/administration/audit_event_streaming.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: 'audit_event_streaming/index.md'
-remove_date: '2023-09-12'
----
-
-This document was moved to [another location](audit_event_streaming/index.md).
-
-<!-- This redirect file can be deleted after <2023-09-12>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/administration/geo/replication/datatypes.md b/doc/administration/geo/replication/datatypes.md
index 9d991a333ff..7a1800c0ae5 100644
--- a/doc/administration/geo/replication/datatypes.md
+++ b/doc/administration/geo/replication/datatypes.md
@@ -190,7 +190,7 @@ successfully, you must replicate their data using some other means.
|Feature | Replicated (added in GitLab version) | Verified (added in GitLab version) | GitLab-managed object storage replication (added in GitLab version) | GitLab-managed object storage verification (added in GitLab version) | Notes |
|:--------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------|:---------------------------------------------------------------------------|:--------------------------------------------------------------------|:----------------------------------------------------------------|:------|
|[Application data in PostgreSQL](../../postgresql/index.md) | **Yes** (10.2) | **Yes** (10.2) | Not applicable | Not applicable | |
-|[Project repository](../../../user/project/repository/index.md) | **Yes** (10.2) | **Yes** (10.7) | Not applicable | Not applicable | Migrated to [self-service framework](../../../development/geo/framework.md) in 16.2. See GitLab issue [#367925](https://gitlab.com/gitlab-org/gitlab/-/issues/367925) for more details.<br /><br />Behind feature flag `geo_project_repository_replication`, enabled by default in (16.3).<br /><br /> All projects, including [archived projects](../../../user/project/settings/index.md#archive-a-project), are replicated. |
+|[Project repository](../../../user/project/repository/index.md) | **Yes** (10.2) | **Yes** (10.7) | Not applicable | Not applicable | Migrated to [self-service framework](../../../development/geo/framework.md) in 16.2. See GitLab issue [#367925](https://gitlab.com/gitlab-org/gitlab/-/issues/367925) for more details.<br /><br />Behind feature flag `geo_project_repository_replication`, enabled by default in (16.3).<br /><br /> All projects, including [archived projects](../../../user/project/settings/migrate_projects.md#archive-a-project), are replicated. |
|[Project wiki repository](../../../user/project/wiki/index.md) | **Yes** (10.2)<sup>2</sup> | **Yes** (10.7)<sup>2</sup> | Not applicable | Not applicable | Migrated to [self-service framework](../../../development/geo/framework.md) in 15.11. See GitLab issue [#367925](https://gitlab.com/gitlab-org/gitlab/-/issues/367925) for more details.<br /><br />Behind feature flag `geo_project_wiki_repository_replication`, enabled by default in (15.11). |
|[Group wiki repository](../../../user/project/wiki/group.md) | [**Yes** (13.10)](https://gitlab.com/gitlab-org/gitlab/-/issues/208147) | [**Yes** (16.3)](https://gitlab.com/gitlab-org/gitlab/-/issues/323897) | Not applicable | Not applicable | Behind feature flag `geo_group_wiki_repository_replication`, enabled by default. |
|[Uploads](../../uploads.md) | **Yes** (10.2) | **Yes** (14.6) | [**Yes** (15.1)](https://gitlab.com/groups/gitlab-org/-/epics/5551) | [**Yes** (16.4)](object_storage.md) | Replication is behind the feature flag `geo_upload_replication`, enabled by default. Verification was behind the feature flag `geo_upload_verification`, removed in 14.8. |
diff --git a/doc/administration/inactive_project_deletion.md b/doc/administration/inactive_project_deletion.md
index 7ccd3455011..5fb6939d924 100644
--- a/doc/administration/inactive_project_deletion.md
+++ b/doc/administration/inactive_project_deletion.md
@@ -35,7 +35,7 @@ To configure deletion of inactive projects:
Inactive projects that meet the criteria are scheduled for deletion and a warning email is sent. If the
projects remain inactive, they are deleted after the specified duration. These projects are deleted even if
-[the project is archived](../user/project/settings/index.md#archive-a-project).
+[the project is archived](../user/project/settings/migrate_projects.md#archive-a-project).
### Configuration example
diff --git a/doc/administration/packages/container_registry.md b/doc/administration/packages/container_registry.md
index 86b5b403b73..13e3714fcc1 100644
--- a/doc/administration/packages/container_registry.md
+++ b/doc/administration/packages/container_registry.md
@@ -1613,7 +1613,7 @@ project or branch name. Special characters can include:
- Double hyphen/dash
To get around this, you can [change the group path](../../user/group/manage.md#change-a-groups-path),
-[change the project path](../../user/project/settings/index.md#rename-a-repository) or change the
+[change the project path](../../user/project/working_with_projects.md#rename-a-repository) or change the
branch name. Another option is to create a [push rule](../../user/project/repository/push_rules.md) to prevent
this at the instance level.
diff --git a/doc/administration/pages/troubleshooting.md b/doc/administration/pages/troubleshooting.md
index be5b8ba27ee..08dcc270176 100644
--- a/doc/administration/pages/troubleshooting.md
+++ b/doc/administration/pages/troubleshooting.md
@@ -184,7 +184,7 @@ this setting needs to be configured on the main GitLab server.
If the wildcard DNS [prerequisite](index.md#prerequisites) can't be met, you can still use GitLab Pages in a limited fashion:
-1. [Move](../../user/project/settings/index.md#transfer-a-project-to-another-namespace)
+1. [Move](../../user/project/settings/migrate_projects.md#transfer-a-project-to-another-namespace)
all projects you need to use Pages with into a single group namespace, for example `pages`.
1. Configure a [DNS entry](index.md#dns-configuration) without the `*.`-wildcard, for example `pages.example.io`.
1. Configure `pages_external_url http://example.io/` in your `gitlab.rb` file.
diff --git a/doc/administration/settings/visibility_and_access_controls.md b/doc/administration/settings/visibility_and_access_controls.md
index 11652d8ee9a..03c104e27fc 100644
--- a/doc/administration/settings/visibility_and_access_controls.md
+++ b/doc/administration/settings/visibility_and_access_controls.md
@@ -113,7 +113,7 @@ In GitLab 15.11 and later with the `always_perform_delayed_deletion` feature fla
Alternatively, projects that are marked for removal can be deleted immediately. To do so:
-1. [Restore the project](../../user/project/settings/index.md#restore-a-project).
+1. [Restore the project](../../user/project/settings/migrate_projects.md#restore-a-project).
1. Delete the project as described in the
[Administering Projects page](../admin_area.md#administering-projects).
diff --git a/doc/api/projects.md b/doc/api/projects.md
index cca96f3c479..4095adbb7bb 100644
--- a/doc/api/projects.md
+++ b/doc/api/projects.md
@@ -3032,7 +3032,7 @@ Example response:
> The `_links.cluster_agents` attribute in the response [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/347047) in GitLab 14.10.
-See the [Project documentation](../user/project/settings/index.md#transfer-a-project-to-another-namespace)
+See the [Project documentation](../user/project/settings/migrate_projects.md#transfer-a-project-to-another-namespace)
for prerequisites to transfer a project.
```plaintext
diff --git a/doc/ci/runners/new_creation_workflow.md b/doc/ci/runners/new_creation_workflow.md
index 026e4ec6470..60497bf5907 100644
--- a/doc/ci/runners/new_creation_workflow.md
+++ b/doc/ci/runners/new_creation_workflow.md
@@ -29,7 +29,7 @@ you can let us know in the [feedback issue](https://gitlab.com/gitlab-org/gitlab
For the new runner registration workflow, you:
-1. [Create a runner](register_runner.md) directly in the GitLab UI.
+1. [Create a runner](runners_scope.md) directly in the GitLab UI.
1. Receive a runner authentication token.
1. Use the runner authentication token instead of the registration token when you register
a runner with this configuration. Runner managers registered in multiple hosts appear
diff --git a/doc/ci/runners/register_runner.md b/doc/ci/runners/register_runner.md
deleted file mode 100644
index bca11682258..00000000000
--- a/doc/ci/runners/register_runner.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: 'runners_scope.md'
-remove_date: '2023-09-21'
----
-
-This document was moved to [another location](runners_scope.md).
-
-<!-- This redirect file can be deleted after <YYYY-MM-DD>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/development/audit_event_guide/index.md b/doc/development/audit_event_guide/index.md
index 87896120cce..df1d2dd03b5 100644
--- a/doc/development/audit_event_guide/index.md
+++ b/doc/development/audit_event_guide/index.md
@@ -244,7 +244,7 @@ to check if the documentation is up-to-date.
## Event streaming
All events where the entity is a `Group` or `Project` are recorded in the audit log, and also streamed to one or more
-[event streaming destinations](../../administration/audit_event_streaming.md). When the entity is a:
+[event streaming destinations](../../administration/audit_event_streaming/index.md). When the entity is a:
- `Group`, events are streamed to the group's root ancestor's event streaming destinations.
- `Project`, events are streamed to the project's root ancestor's event streaming destinations.
diff --git a/doc/development/internal_analytics/service_ping/metrics_dictionary.md b/doc/development/internal_analytics/service_ping/metrics_dictionary.md
deleted file mode 100644
index 9adcaaf431d..00000000000
--- a/doc/development/internal_analytics/service_ping/metrics_dictionary.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../metrics/metrics_dictionary.md'
-remove_date: '2023-09-25'
----
-
-This document was moved to [another location](../metrics/metrics_dictionary.md).
-
-<!-- This redirect file can be deleted after <2023-12-25>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/development/internal_analytics/service_ping/metrics_lifecycle.md b/doc/development/internal_analytics/service_ping/metrics_lifecycle.md
deleted file mode 100644
index 126bc3988ed..00000000000
--- a/doc/development/internal_analytics/service_ping/metrics_lifecycle.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../metrics/metrics_lifecycle.md'
-remove_date: '2023-09-25'
----
-
-This document was moved to [another location](../metrics/metrics_lifecycle.md).
-
-<!-- This redirect file can be deleted after <2023-12-25>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/development/internal_analytics/service_ping/performance_indicator_metrics.md b/doc/development/internal_analytics/service_ping/performance_indicator_metrics.md
deleted file mode 100644
index 7388415f384..00000000000
--- a/doc/development/internal_analytics/service_ping/performance_indicator_metrics.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../metrics/metrics_dictionary.md#performance-indicator-metrics'
-remove_date: '2023-09-25'
----
-
-This document was moved to [another location](../metrics/metrics_lifecycle.md).
-
-<!-- This redirect file can be deleted after <2023-12-25>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/gitlab-basics/add-file.md b/doc/gitlab-basics/add-file.md
index 55300d52b71..b989f5fa05e 100644
--- a/doc/gitlab-basics/add-file.md
+++ b/doc/gitlab-basics/add-file.md
@@ -5,73 +5,64 @@ info: "To determine the technical writer assigned to the Stage/Group associated
type: howto
---
-# Add a file to a repository **(FREE ALL)**
+# Use Git to add a file to a repository **(FREE ALL)**
-Adding files to a repository is a small, but key, task. No matter where the code,
-images, or documents were created, Git tracks them after you add them to your repository.
+To add a new file from the command line:
-## Add an existing file
+1. Open a terminal.
+1. Change directories until you are in your project's folder.
-To add an existing file to your repository, either:
+ ```shell
+ cd my-project
+ ```
-- Upload the file from the GitLab UI.
-- Add a file to your repository from the command line, then push the file up to GitLab.
+1. Choose a Git branch to work in.
+ - To create a branch: `git checkout -b <branchname>`
+ - To switch to an existing branch: `git checkout <branchname>`
-### From the UI
+1. Copy the file you want to add into the directory where you want to add it.
+1. Confirm that your file is in the directory:
+ - Windows: `dir`
+ - All other operating systems: `ls`
-If you are unfamiliar with the command line, use the
-[Web Editor](../user/project/repository/web_editor.md) to upload a file from the GitLab UI:
+ The filename should be displayed.
+1. Check the status of the file:
-<!-- Original source for this list: doc/user/project/repository/web_editor.md#upload-a-file -->
-<!-- For why we duplicated the info, see https://gitlab.com/gitlab-org/gitlab/-/merge_requests/111072#note_1267429478 -->
+ ```shell
+ git status
+ ```
-1. On the left sidebar, select **Search or go to** and find your project.
-1. From the project dashboard or repository, next to the branch name, select the plus icon (**{plus}**).
-1. From the dropdown list, select **Upload file**.
-1. Complete the fields. To create a merge request with the uploaded file, ensure the **Start a new merge request with these changes** toggle is turned on.
-1. Select **Upload file**.
+ The filename should be in red. The file is in your file system, but Git isn't tracking it yet.
+1. Tell Git to track the file:
-### From the command line
+ ```shell
+ git add <filename>
+ ```
-To add a new file from the command line:
+1. Check the status of the file again:
+
+ ```shell
+ git status
+ ```
-1. Open a terminal (or shell) window.
-1. Use the "change directory" (`cd`) command to go to your GitLab project's folder.
- Run the `cd DESTINATION` command, changing `DESTINATION` to the location of your folder.
-1. Choose a Git branch to work in. You can either:
- - [Create a new branch](../tutorials/make_first_git_commit/index.md#create-a-branch-and-make-changes)
- to add your file into. Don't submit changes directly to the default branch of your
- repository unless your project is very small and you're the only person working on it.
- - [Switch to an existing branch](start-using-git.md#switch-to-a-branch).
-1. Copy the file into the appropriate directory in your project. Use your standard tool
- for copying files, such as Finder in macOS, or File Explorer in Windows.
-1. In your terminal window, confirm that your file is present in the directory:
- - Windows: Use the `dir` command.
- - All other operating systems: Use the `ls` command.
- You should see the name of the file in the list shown.
-1. Check the status of your file with the `git status` command. Your file's name
- should be red. Files listed in red are in your file system, but Git isn't tracking them yet.
-1. Tell Git to track this file with the `git add FILENAME` command, replacing `FILENAME`
- with the name of your file.
-1. Check the status of your file again with the `git status` command. Your file's name
- should be green. Files listed in green are tracked locally by Git, but still
- need to be committed and pushed.
-1. Commit (save) your file to your local copy of your project's Git repository:
+ The filename should be green. The file is tracked locally by Git, but
+ has not been committed and pushed.
+1. Commit the file to your local copy of the project's Git repository:
```shell
- git commit -m "DESCRIBE COMMIT IN A FEW WORDS"
+ git commit -m "Describe the reason for your commit here"
```
-1. Push (send) your changes from your copy of the repository, up to GitLab.
- In this command, `origin` refers to the copy of the repository stored at GitLab.
- Replace `BRANCHNAME` with the name of your branch:
+1. Push your changes from your copy of the repository to GitLab.
+ In this command, `origin` refers to the remote copy of the repository.
+ Replace `<branchname>` with the name of your branch:
```shell
- git push origin BRANCHNAME
+ git push origin <branchname>
```
1. Git prepares, compresses, and sends the data. Lines from the remote repository
- (here, GitLab) are prefixed with `remote:` like this:
+ start with `remote:`:
```plaintext
Enumerating objects: 9, done.
@@ -81,21 +72,22 @@ To add a new file from the command line:
Writing objects: 100% (5/5), 1.84 KiB | 1.84 MiB/s, done.
Total 5 (delta 3), reused 0 (delta 0), pack-reused 0
remote:
- remote: To create a merge request for BRANCHNAME, visit:
- remote: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/new?merge_request%5Bsource_branch%5D=BRANCHNAME
+ remote: To create a merge request for <branchname>, visit:
+ remote: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/new?merge_request%5Bsource_branch%5D=<branchname>
remote:
To https://gitlab.com/gitlab-org/gitlab.git
- * [new branch] BRANCHNAME -> BRANCHNAME
- branch 'BRANCHNAME' set up to track 'origin/BRANCHNAME'.
+ * [new branch] <branchname> -> <branchname>
+ branch '<branchname>' set up to track 'origin/<branchname>'.
```
-Your file is now copied from your local copy of the repository, up to the remote
-repository at GitLab. To create a merge request, copy the link sent back from the remote
-repository and paste it into a browser window.
+Your file is copied from your local copy of the repository to the remote
+repository.
-## Add a new file
+To create a merge request, copy the link sent back from the remote
+repository and paste it into a browser window.
-To create a new file (like a `README.md` text file) in your repository, either:
+## Related topics
-- [Create the file](../user/project/repository/web_editor.md#create-a-file) from the GitLab UI.
-- Create the file from the terminal.
+- [Add file from the UI](../user/project/repository/index.md#add-a-file-from-the-ui)
+- [Add file from the Web IDE](../user/project/repository/web_editor.md#upload-a-file)
+- [`git add` options](../topics/git/git_add.md)
diff --git a/doc/integration/security_partners/index.md b/doc/integration/security_partners/index.md
deleted file mode 100644
index 49244d68ace..00000000000
--- a/doc/integration/security_partners/index.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../index.md#security-improvements'
-remove_date: '2023-10-05'
----
-
-This document was moved to [another location](../index.md#security-improvements).
-
-<!-- This redirect file can be deleted after <2023-10-05>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/integration/slash_commands.md b/doc/integration/slash_commands.md
deleted file mode 100644
index e36ee164002..00000000000
--- a/doc/integration/slash_commands.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../user/project/integrations/gitlab_slack_application.md#slash-commands'
-remove_date: '2023-09-19'
----
-
-This document was moved to [another location](../user/project/integrations/gitlab_slack_application.md#slash-commands).
-
-<!-- This redirect file can be deleted after 2023-09-19. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/raketasks/backup_gitlab.md b/doc/raketasks/backup_gitlab.md
deleted file mode 100644
index 231312b3833..00000000000
--- a/doc/raketasks/backup_gitlab.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-stage: Systems
-group: Geo
-info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
-redirect_to: '../administration/backup_restore/backup_gitlab.md'
-remove_date: '2023-09-26'
----
-
-This document was moved to [another location](../administration/backup_restore/backup_gitlab.md).
-
-<!-- This redirect file can be deleted after <2023-09-26>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/raketasks/backup_restore.md b/doc/raketasks/backup_restore.md
deleted file mode 100644
index 97cafefb45d..00000000000
--- a/doc/raketasks/backup_restore.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-stage: Systems
-group: Geo
-info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
-redirect_to: '../administration/backup_restore/index.md'
-remove_date: '2023-09-26'
----
-
-This document was moved to [another location](../administration/backup_restore/index.md).
-
-<!-- This redirect file can be deleted after <2023-09-26>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/raketasks/restore_gitlab.md b/doc/raketasks/restore_gitlab.md
deleted file mode 100644
index 434e256de35..00000000000
--- a/doc/raketasks/restore_gitlab.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-stage: Systems
-group: Geo
-info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
-redirect_to: '../administration/backup_restore/restore_gitlab.md'
-remove_date: '2023-09-26'
----
-
-This document was moved to [another location](../administration/backup_restore/restore_gitlab.md).
-
-<!-- This redirect file can be deleted after <2023-09-26>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/topics/git/git_add.md b/doc/topics/git/git_add.md
index db85e75a6a8..101bd01c345 100644
--- a/doc/topics/git/git_add.md
+++ b/doc/topics/git/git_add.md
@@ -6,33 +6,33 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Git add **(FREE ALL)**
-Adds content to the index or staging area.
+Before you commit content, add it to the staging area.
-- Adds a list of file:
+- Add a list of files:
```shell
git add <files>
```
-- Adds all files including deleted ones:
+- Add all files, including deleted ones:
```shell
git add -A
```
-- Add all text files in current dir:
+- Add all text files in current directory:
```shell
git add *.txt
```
-- Add all text file in the project:
+- Add all text files in the project:
```shell
git add "*.txt*"
```
-- Adds all files in directory:
+- Add all files in a directory called `views/layouts`:
```shell
git add views/layouts/
diff --git a/doc/topics/git/rollback_commits.md b/doc/topics/git/rollback_commits.md
index b86b7dbfca5..88999015c69 100644
--- a/doc/topics/git/rollback_commits.md
+++ b/doc/topics/git/rollback_commits.md
@@ -6,48 +6,49 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Roll back commits **(FREE ALL)**
-## Undo Commits
+In Git, if you make a mistake, you can undo or roll back your changes.
+For more details, see [Undo options](numerous_undo_possibilities_in_git/index.md).
-- Undo last commit putting everything back into the staging area:
+## Undo commits
+
+- Undo your last commit and put everything back in the staging area:
```shell
git reset --soft HEAD^
```
-- Add files and change message with:
+- Add files and change the commit message:
```shell
git commit --amend -m "New Message"
```
-- Undo last and remove changes:
+- Undo the last change and remove all other changes,
+ if you did not push yet:
```shell
git reset --hard HEAD^
```
-- Same as last one but for two commits back:
+- Undo the last change and remove the last two commits,
+ if you did not push yet:
```shell
git reset --hard HEAD^^
```
-**Don't reset after pushing**
-
-## Reset Workflow
-
-1. Edit file again 'edit_this_file.rb'
-1. Check status
-1. Add and commit with wrong message
-1. Check log
-1. Amend commit
-1. Check log
-1. Soft reset
-1. Check log
-1. Pull for updates
-1. Push changes
+## Git reset sample workflow
-## Commands
+1. Edit file again `edit_this_file.rb`.
+1. Check status.
+1. Add and commit with wrong message.
+1. Check log.
+1. Amend commit.
+1. Check log.
+1. Soft reset.
+1. Check log.
+1. Pull for updates.
+1. Push changes.
```shell
# Change file edit_this_file.rb
@@ -62,11 +63,10 @@ git pull origin master
git push origin master
```
-## Note
+## The difference between `git revert` and `git reset`
-- `git revert` vs `git reset`
-- Reset removes the commit while revert removes the changes but leaves the commit
-- Revert is safer considering we can revert a revert
+- The `git reset` command removes the commit. The `git revert` command removes the changes but leaves the commit.
+- The `git revert` command is safer, because you can revert a revert.
```shell
# Changed file
diff --git a/doc/topics/git/stash.md b/doc/topics/git/stash.md
index 84a09385bf6..e07a370e398 100644
--- a/doc/topics/git/stash.md
+++ b/doc/topics/git/stash.md
@@ -6,8 +6,8 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Git stash **(FREE ALL)**
-We use `git stash` to store our changes when they are not ready to be committed,
-but we must change to a different branch.
+Use `git stash` when you want to change to a different branch, and you
+want to store changes that are not ready to be committed.
- Stash:
@@ -27,7 +27,7 @@ but we must change to a different branch.
git stash apply stash@{3}
```
-- Every time we save a stash it gets stacked so by using `list` we can see all our
+- Every time you save a stash, it gets stacked. Use `list` to see all of the
stashes.
```shell
@@ -36,7 +36,7 @@ but we must change to a different branch.
git stash list --stat
```
-- To clean our stack, manually remove them:
+- To clean the stack, manually remove them:
```shell
# drop top stash
@@ -47,24 +47,24 @@ but we must change to a different branch.
git stash clear
```
-- Apply and drop on one command:
+- Use one command to apply and drop:
```shell
git stash pop
```
-- If we meet conflicts, either reset or commit our changes.
-- Conflicts through `pop` doesn't drop a stash afterwards.
+- If you have conflicts, either reset or commit your changes.
+- Conflicts through `pop` don't drop a stash afterwards.
-## Git Stash sample workflow
+## Git stash sample workflow
-1. Modify a file
-1. Stage file
-1. Stash it
-1. View our stash list
-1. Confirm no pending changes through status
-1. Apply with pop
-1. View list to confirm changes
+1. Modify a file.
+1. Stage file.
+1. Stash it.
+1. View the stash list.
+1. Confirm no pending changes through `git status`.
+1. Apply with `git stash pop`.
+1. View list to confirm changes.
```shell
# Modify edit_this_file.rb file
diff --git a/doc/topics/git/unstage.md b/doc/topics/git/unstage.md
index 028f34b2433..beb5d05ecfc 100644
--- a/doc/topics/git/unstage.md
+++ b/doc/topics/git/unstage.md
@@ -7,22 +7,37 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Unstage a file in Git **(FREE ALL)**
When you _stage_ a file in Git, you instruct Git to track changes to the file in
-preparation for a commit. To instruct Git to disregard changes to a file, and not
+preparation for a commit. To disregard changes to a file, and not
include it in your next commit, _unstage_ the file.
-- To remove files from stage use `reset HEAD`, where HEAD is the last commit of
- the current branch. This unstages the file but maintains the modifications.
+## Unstage a file
+
+- To remove files from staging, but keep your changes:
```shell
git reset HEAD <file>
```
-- To revert the file back to the state it was in before the changes:
+- To unstage the last three commits:
+
+ ```shell
+ git reset HEAD^3
+ ```
+
+- To unstage changes to a certain file from HEAD:
```shell
- git checkout -- <file>
+ git reset <filename>
```
+After you unstage the file, to revert the file back to the state it was in before the changes:
+
+```shell
+git checkout -- <file>
+```
+
+## Remove a file
+
- To remove a file from disk and repository, use `git rm`. To remove a directory, use the `-r` flag:
```shell
diff --git a/doc/topics/git/useful_git_commands.md b/doc/topics/git/useful_git_commands.md
index 305008e2642..6cc87a650b9 100644
--- a/doc/topics/git/useful_git_commands.md
+++ b/doc/topics/git/useful_git_commands.md
@@ -7,8 +7,7 @@ type: reference
# Frequently used Git commands **(FREE ALL)**
-The GitLab support team has collected these commands to help you. You may not
-need them frequently.
+The following commands are frequently used.
## Remotes
@@ -18,28 +17,6 @@ need them frequently.
git remote set-url --add <remote_name> <remote_url>
```
-## Staging and reverting changes
-
-### Remove last commit and leave the changes in unstaged
-
-```shell
-git reset --soft HEAD^
-```
-
-### Unstage a certain number of commits from HEAD
-
-To unstage 3 commits, for example, run:
-
-```shell
-git reset HEAD^3
-```
-
-### Unstage changes to a certain file from HEAD
-
-```shell
-git reset <filename>
-```
-
### Revert a file to HEAD state and remove changes
To revert changes to a file, you can use either:
@@ -101,38 +78,6 @@ git commit --amend
Append `--no-edit` to the `commit` command if you do not want to edit the commit
message.
-## Stashing
-
-### Stash changes
-
-```shell
-git stash save
-```
-
-The default behavior of `stash` is to save, so you can also use just:
-
-```shell
-git stash
-```
-
-### Unstash your changes
-
-```shell
-git stash apply
-```
-
-### Discard your stashed changes
-
-```shell
-git stash drop
-```
-
-### Apply and drop your stashed changes
-
-```shell
-git stash pop
-```
-
## Refs and Log
### Use reflog to show the log of reference changes to HEAD
diff --git a/doc/tutorials/move_personal_project_to_group/index.md b/doc/tutorials/move_personal_project_to_group/index.md
index 73d22de6983..e5eab5d9e93 100644
--- a/doc/tutorials/move_personal_project_to_group/index.md
+++ b/doc/tutorials/move_personal_project_to_group/index.md
@@ -70,7 +70,7 @@ project.
NOTE:
For more information about these migration steps,
-see [Transferring your project into another namespace](../../user/project/settings/index.md#transfer-a-project-to-another-namespace).
+see [Transferring your project into another namespace](../../user/project/settings/migrate_projects.md#transfer-a-project-to-another-namespace).
A migration might result in follow-up work to update the project path in
your related resources and tools, such as websites and package managers.
diff --git a/doc/update/deprecations.md b/doc/update/deprecations.md
index 485ede5d8f0..bcbad162bc5 100644
--- a/doc/update/deprecations.md
+++ b/doc/update/deprecations.md
@@ -69,7 +69,7 @@ The configuration arguments disabled for authentication tokens are:
- `--run-untagged`
- `--tag-list`
-This change is a breaking change. You should use an [authentication token](../ci/runners/register_runner.md) in the `gitlab-runner register` command instead.
+This change is a breaking change. You should use an [authentication token](../ci/runners/runners_scope.html) in the `gitlab-runner register` command instead.
</div>
@@ -96,7 +96,7 @@ The configuration arguments disabled for authentication tokens are:
- `--tag-list`
- `--maintenance-note`
-This change is a breaking change. You should [create a runner in the UI](../ci/runners/register_runner.md) to add configurations, and use the authentication token in the `gitlab-runner register` command instead.
+This change is a breaking change. You should [create a runner in the UI](../ci/runners/runners_scope.html) to add configurations, and use the authentication token in the `gitlab-runner register` command instead.
</div>
@@ -950,7 +950,7 @@ The configuration arguments disabled for authentication tokens are:
- `--tag-list`
- `--maintenance-note`
-This change is a breaking change. You should [create a runner in the UI](../ci/runners/register_runner.md) to add configurations, and use the authentication token in the `gitlab-runner register` command instead.
+This change is a breaking change. You should [create a runner in the UI](../ci/runners/runners_scope.html) to add configurations, and use the authentication token in the `gitlab-runner register` command instead.
</div>
diff --git a/doc/update/removals.md b/doc/update/removals.md
deleted file mode 100644
index 56f8b34fd27..00000000000
--- a/doc/update/removals.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: 'deprecations.md'
-remove_date: '2023-09-28'
----
-
-This document was moved to [another location](deprecations.md).
-
-<!-- This redirect file can be deleted after <2023-09-28>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/admin_area/analytics/dev_ops_reports.md b/doc/user/admin_area/analytics/dev_ops_reports.md
deleted file mode 100644
index 30ba2ad3e7b..00000000000
--- a/doc/user/admin_area/analytics/dev_ops_reports.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../../../administration/analytics/dev_ops_reports.md'
-remove_date: '2023-10-06'
----
-
-This document was moved to [another location](../../../administration/analytics/dev_ops_reports.md).
-
-<!-- This redirect file can be deleted after <2023-10-06>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/admin_area/analytics/index.md b/doc/user/admin_area/analytics/index.md
deleted file mode 100644
index f5849f0b876..00000000000
--- a/doc/user/admin_area/analytics/index.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../../../administration/analytics/index.md'
-remove_date: '2023-10-06'
----
-
-This document was moved to [another location](../../../administration/analytics/index.md).
-
-<!-- This redirect file can be deleted after <2023-10-06>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/admin_area/analytics/usage_trends.md b/doc/user/admin_area/analytics/usage_trends.md
deleted file mode 100644
index 12eb44d6ebc..00000000000
--- a/doc/user/admin_area/analytics/usage_trends.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../../../administration/analytics/usage_trends.md'
-remove_date: '2023-10-07'
----
-
-This document was moved to [another location](../../../administration/analytics/usage_trends.md).
-
-<!-- This redirect file can be deleted after <2023-10-07>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/admin_area/appearance.md b/doc/user/admin_area/appearance.md
deleted file mode 100644
index 6a3760bc62d..00000000000
--- a/doc/user/admin_area/appearance.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../../administration/appearance.md'
-remove_date: '2023-10-07'
----
-
-This document was moved to [another location](../../administration/appearance.md).
-
-<!-- This redirect file can be deleted after <2023-10-07>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/admin_area/broadcast_messages.md b/doc/user/admin_area/broadcast_messages.md
deleted file mode 100644
index 4893b94ce50..00000000000
--- a/doc/user/admin_area/broadcast_messages.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../../administration/broadcast_messages.md'
-remove_date: '2023-10-07'
----
-
-This document was moved to [another location](../../administration/broadcast_messages.md).
-
-<!-- This redirect file can be deleted after <2023-10-07>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/admin_area/credentials_inventory.md b/doc/user/admin_area/credentials_inventory.md
deleted file mode 100644
index f38eed5de43..00000000000
--- a/doc/user/admin_area/credentials_inventory.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../../administration/credentials_inventory.md'
-remove_date: '2023-10-07'
----
-
-This document was moved to [another location](../../administration/credentials_inventory.md).
-
-<!-- This redirect file can be deleted after <2023-10-07>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/admin_area/labels.md b/doc/user/admin_area/labels.md
deleted file mode 100644
index 724c9885801..00000000000
--- a/doc/user/admin_area/labels.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../../administration/labels.md'
-remove_date: '2023-10-05'
----
-
-This document was moved to [another location](../../administration/labels.md).
-
-<!-- This redirect file can be deleted after <2023-10-05>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/admin_area/settings/floc.md b/doc/user/admin_area/settings/floc.md
deleted file mode 100644
index 8e99005509a..00000000000
--- a/doc/user/admin_area/settings/floc.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../../../administration/settings/floc.md'
-remove_date: '2023-10-06'
----
-
-This document was moved to [another location](../../../administration/settings/floc.md).
-
-<!-- This redirect file can be deleted after <2023-10-06>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/admin_area/settings/git_lfs_rate_limits.md b/doc/user/admin_area/settings/git_lfs_rate_limits.md
deleted file mode 100644
index 8d7840b804c..00000000000
--- a/doc/user/admin_area/settings/git_lfs_rate_limits.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../../../administration/settings/git_lfs_rate_limits.md'
-remove_date: '2023-10-06'
----
-
-This document was moved to [another location](../../../administration/settings/git_lfs_rate_limits.md).
-
-<!-- This redirect file can be deleted after <2023-10-06>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/admin_area/settings/gitaly_timeouts.md b/doc/user/admin_area/settings/gitaly_timeouts.md
deleted file mode 100644
index 572a9c55642..00000000000
--- a/doc/user/admin_area/settings/gitaly_timeouts.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../../../administration/settings/gitaly_timeouts.md'
-remove_date: '2023-10-07'
----
-
-This document was moved to [another location](../../../administration/settings/gitaly_timeouts.md).
-
-<!-- This redirect file can be deleted after <2023-10-07>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/admin_area/settings/help_page.md b/doc/user/admin_area/settings/help_page.md
deleted file mode 100644
index 38fe5c3b54c..00000000000
--- a/doc/user/admin_area/settings/help_page.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../../../administration/settings/help_page.md'
-remove_date: '2023-10-07'
----
-
-This document was moved to [another location](../../../administration/settings/help_page.md).
-
-<!-- This redirect file can be deleted after <2023-10-07>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/admin_area/settings/import_export_rate_limits.md b/doc/user/admin_area/settings/import_export_rate_limits.md
deleted file mode 100644
index ad55f424d81..00000000000
--- a/doc/user/admin_area/settings/import_export_rate_limits.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../../../administration/settings/import_export_rate_limits.md'
-remove_date: '2023-10-07'
----
-
-This document was moved to [another location](../../../administration/settings/import_export_rate_limits.md).
-
-<!-- This redirect file can be deleted after <2023-10-07>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/application_security/continuous_vulnerability_scanning/index.md b/doc/user/application_security/continuous_vulnerability_scanning/index.md
index e31fc5f7eb0..a1758e7fbd7 100644
--- a/doc/user/application_security/continuous_vulnerability_scanning/index.md
+++ b/doc/user/application_security/continuous_vulnerability_scanning/index.md
@@ -4,13 +4,10 @@ group: Composition Analysis
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
---
-# Continuous Vulnerability Scanning **(ULTIMATE EXPERIMENT)**
+# Continuous Vulnerability Scanning **(ULTIMATE ALL)**
-> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/371063) in GitLab 16.4 as an [Experiment](../../../policy/experiment-beta-support.md#experiment) with two [features flags](../../../administration/feature_flags.md) named `dependency_scanning_on_advisory_ingestion` and `package_metadata_advisory_sync`. Enabled by default.
-
-NOTE:
-This feature is an [Experiment](../../../policy/experiment-beta-support.md#experiment) and subject to change without notice.
-If you have any feedback, you can let us know in the [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/425072).
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/371063) in GitLab 16.4 as an [Experiment](../../../policy/experiment-beta-support.md#experiment) with two [features flags](../../../administration/feature_flags.md) named `dependency_scanning_on_advisory_ingestion` and `package_metadata_advisory_sync`. Enabled by default.
+> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/427424) in GitLab 16.7 with an additional feature flag named `global_dependency_scanning_on_advisory_ingestion`. Enabled by default.
FLAG:
On self-managed GitLab, by default this feature is available. To hide the feature, an administrator can [disable the feature flags](../../feature_flags.md) named `dependency_scanning_on_advisory_ingestion` and `package_metadata_advisory_sync`.
@@ -27,7 +24,6 @@ Continuous Vulnerability Scanning detects vulnerabilities in the latest CycloneD
To enable Continuous Vulnerability Scanning:
-- Enable the Continuous Vulnerability Scanning setting in the project's [security configuration](../configuration/index.md).
- Enable [Dependency Scanning](../dependency_scanning/index.md#configuration) and ensure that its prerequisites are met.
- On GitLab self-managed only, you can [choose package registry metadata to synchronize](../../../administration/settings/security_and_compliance.md#choose-package-registry-metadata-to-sync) in the Admin Area for the GitLab instance. For this data synchronization to work, you must allow outbound network traffic from your GitLab instance to the domain `storage.googleapis.com`. If you have limited or no network connectivity then please refer to the documentation section [running in an offline environment](#running-in-an-offline-environment) for further guidance.
diff --git a/doc/user/application_security/dependency_scanning/analyzers.md b/doc/user/application_security/dependency_scanning/analyzers.md
deleted file mode 100644
index 0d7d495ba49..00000000000
--- a/doc/user/application_security/dependency_scanning/analyzers.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: 'index.md'
-remove_date: '2023-09-22'
----
-
-This document was moved to [another location](index.md).
-
-<!-- This redirect file can be deleted after <2023-09-22>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html --> \ No newline at end of file
diff --git a/doc/user/compliance/compliance_report/index.md b/doc/user/compliance/compliance_report/index.md
deleted file mode 100644
index 998e9c81d18..00000000000
--- a/doc/user/compliance/compliance_report/index.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-redirect_to: '../compliance_center/index.md'
-remove_date: '2023-09-20'
----
-
-This document was moved to [another location](../compliance_center/index.md).
-
-<!-- This redirect file can be deleted after <2023-09-20>. -->
-<!-- Redirects that point to other docs in the same project expire in three months. -->
-<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
-<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/custom_roles.md b/doc/user/custom_roles.md
index 50fa8a7ea9c..445717da80d 100644
--- a/doc/user/custom_roles.md
+++ b/doc/user/custom_roles.md
@@ -115,7 +115,7 @@ These requirements are documented in the `Required permission` column in the fol
| `admin_merge_request` | GitLab 16.4 and later | Not applicable | View and approve [merge requests](project/merge_requests/index.md), revoke merge request approval, and view the associated merge request code. <br> Does not allow users to view or change merge request approval rules. |
| `manage_project_access_tokens` | GitLab 16.5 and later | Not applicable | Create, delete, and list [project access tokens](project/settings/project_access_tokens.md). |
| `admin_group_member` | GitLab 16.5 and later | Not applicable | Add or remove [group members](group/manage.md). |
-| `archive_project` | GitLab 16.6 and later | Not applicable | Archive and unarchive [projects](project/settings/index.md#archive-a-project). |
+| `archive_project` | GitLab 16.6 and later | Not applicable | Archive and unarchive [projects](project/settings/migrate_projects.md#archive-a-project). |
## Billing and seat usage
diff --git a/doc/user/packages/container_registry/troubleshoot_container_registry.md b/doc/user/packages/container_registry/troubleshoot_container_registry.md
index d2134d563b9..3be0eb3aba1 100644
--- a/doc/user/packages/container_registry/troubleshoot_container_registry.md
+++ b/doc/user/packages/container_registry/troubleshoot_container_registry.md
@@ -25,7 +25,7 @@ project, or branch name. Special characters include:
- A trailing hyphen or dash.
To resolve this error, you can change the [group path](../../group/manage.md#change-a-groups-path),
-the [project path](../../project/settings/index.md#rename-a-repository) or the branch name.
+the [project path](../../project/working_with_projects.md#rename-a-repository) or the branch name.
You may get a `404 Not Found` or `Unknown Manifest` error message if you use
Docker Engine 17.11 or earlier. Current versions of Docker Engine use
diff --git a/doc/user/profile/index.md b/doc/user/profile/index.md
index 44196d99385..aa50d5c269a 100644
--- a/doc/user/profile/index.md
+++ b/doc/user/profile/index.md
@@ -127,7 +127,7 @@ GitLab displays the contents of your README below your contribution graph.
### From an existing project
To add the README from an existing project to your profile,
-[update the path](../project/settings/index.md#rename-a-repository) of the project
+[update the path](../project/working_with_projects.md#rename-a-repository) of the project
to match your username.
## Add external accounts to your user profile page
diff --git a/doc/user/project/index.md b/doc/user/project/index.md
index 9ee1e33ecdd..e28bc46924b 100644
--- a/doc/user/project/index.md
+++ b/doc/user/project/index.md
@@ -122,7 +122,7 @@ GitLab creates your project in your chosen namespace.
You cannot use `git push` to create projects with project paths that:
- Have previously been used.
-- Have been [renamed](settings/index.md#rename-a-repository).
+- Have been [renamed](working_with_projects.md#rename-a-repository).
Previously used project paths have a redirect. The redirect causes push attempts to redirect requests
to the renamed project location, instead of creating a new project. To create a new project for a previously
diff --git a/doc/user/project/repository/index.md b/doc/user/project/repository/index.md
index a44988830ac..348a0c8ed4f 100644
--- a/doc/user/project/repository/index.md
+++ b/doc/user/project/repository/index.md
@@ -23,9 +23,23 @@ To create a repository, you can:
You can add files to a repository:
- When you create a project.
-- After you create a project:
- - By using [the web editor](web_editor.md).
- - From the command line.
+- After you create a project, by using:
+ - [The web editor](web_editor.md#upload-a-file).
+ - [The UI](#add-a-file-from-the-ui).
+ - [The command line](../../../topics/git/git_add.md).
+
+### Add a file from the UI
+
+You can upload a file from the GitLab UI.
+
+<!-- Original source for this list: doc/user/project/repository/web_editor.md#upload-a-file -->
+<!-- For why we duplicated the info, see https://gitlab.com/gitlab-org/gitlab/-/merge_requests/111072#note_1267429478 -->
+
+1. On the left sidebar, select **Search or go to** and find your project.
+1. From the project dashboard or repository, next to the branch name, select the plus icon (**{plus}**).
+1. From the dropdown list, select **Upload file**.
+1. Complete the fields. To create a merge request with the uploaded file, ensure the **Start a new merge request with these changes** toggle is turned on.
+1. Select **Upload file**.
## Commit changes to a repository
@@ -259,7 +273,7 @@ When a repository path changes, GitLab handles the transition from the
old location to the new one with a redirect.
When you [rename a user](../../profile/index.md#change-your-username),
-[change a group path](../../group/manage.md#change-a-groups-path), or [rename a repository](../settings/index.md#rename-a-repository):
+[change a group path](../../group/manage.md#change-a-groups-path), or [rename a repository](../../project/working_with_projects.md#rename-a-repository):
- URLs for the namespace and everything under it, like projects, are
redirected to the new URLs.
diff --git a/doc/user/project/settings/index.md b/doc/user/project/settings/index.md
index 06e6b059f61..0456577f1ff 100644
--- a/doc/user/project/settings/index.md
+++ b/doc/user/project/settings/index.md
@@ -1,196 +1,11 @@
---
-stage: Data Stores
-group: Tenant Scale
-info: 'To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments'
-type: reference, index, howto
+redirect_to: '../working_with_projects.md'
+remove_date: '2024-02-28'
---
-# Project settings **(FREE ALL)**
+This document was moved to [another location](../working_with_projects.md).
-Use the **Settings** page to manage the configuration options in your [project](../index.md).
-
-## View project settings
-
-Prerequisites:
-
-- You must have at least the Maintainer role for the project.
-
-1. On the left sidebar, select **Search or go to** and find your project.
-1. Select **Settings > General**.
-1. To display all settings in a section, select **Expand**.
-1. Optional. Use the search box to find a setting.
-
-## Rename a repository
-
-A project's repository name defines its URL and its place on the file disk
-where GitLab is installed.
-
-Prerequisites:
-
-- You must be an administrator or have the Maintainer or Owner role for the project.
-
-NOTE:
-When you change the repository path, users may experience issues if they push to, or pull from, the old URL. For more information, see
-[redirects when renaming repositories](../repository/index.md#what-happens-when-a-repository-path-changes).
-
-To rename a repository:
-
-1. On the left sidebar, select **Search or go to** and find your project.
-1. Select **Settings > General**.
-1. Expand **Advanced**.
-1. In the **Change path** text box, edit the path.
-1. Select **Change path**.
-
-## Configure merge request settings for a project
-
-Configure your project's merge request settings:
-
-- Set up the [merge request method](../merge_requests/methods/index.md) (merge commit, fast-forward merge).
-- Add merge request [description templates](../description_templates.md).
-- Enable:
- - [Merge request approvals](../merge_requests/approvals/index.md).
- - [Status checks](../merge_requests/status_checks.md).
- - [Merge only if pipeline succeeds](../merge_requests/merge_when_pipeline_succeeds.md).
- - [Merge only when all threads are resolved](../merge_requests/index.md#prevent-merge-unless-all-threads-are-resolved).
- - [Required associated issue from Jira](../../../integration/jira/issues.md#require-associated-jira-issue-for-merge-requests-to-be-merged).
- - [GitLab Duo Suggested Reviewers](../merge_requests/reviews/index.md#gitlab-duo-suggested-reviewers)
- - [**Delete source branch when merge request is accepted** option by default](#delete-the-source-branch-on-merge-by-default).
-- Configure:
- - [Suggested changes commit messages](../merge_requests/reviews/suggestions.md#configure-the-commit-message-for-applied-suggestions).
- - [Merge and squash commit message templates](../merge_requests/commit_templates.md).
- - [Default target project](../merge_requests/creating_merge_requests.md#set-the-default-target-project) for merge requests coming from forks.
-
-### Delete the source branch on merge by default
-
-In merge requests, you can change the default behavior so that the
-**Delete the source branch** checkbox is always selected.
-
-To set this default:
-
-1. On the left sidebar, select **Search or go to** and find your project.
-1. Select **Settings > Merge requests**.
-1. Select **Enable "Delete source branch" option by default**.
-1. Select **Save changes**.
-
-## Export project
-
-You can [export a project and its data](import_export.md#export-a-project-and-its-data).
-
-## Transfer a project to another namespace
-
-When you transfer a project to another namespace, you move the project to a different group.
-
-Prerequisites:
-
-- You must have at least the Maintainer role for the [group](../../group/index.md#create-a-group) you are transferring to.
-- You must be the Owner of the project you transfer.
-- The group must allow creation of new projects.
-- The project must not contain any [container images](../../packages/container_registry/index.md#move-or-rename-container-registry-repositories).
-- The project must not have a security policy.
- If a security policy is assigned to the project, it is automatically unassigned during the transfer.
-- If the root namespace changes, you must remove npm packages that follow the [naming convention](../../../user/packages/npm_registry/index.md#naming-convention) from the project.
- After you transfer the project you can either:
-
- - Update the package scope with the new root namespace path, and publish it again to the project.
- - Republish the package to the project without updating the root namespace path, which causes the package to no longer follow the naming convention.
- If you republish the package without updating the root namespace path, it will not be available at the [instance level endpoint](../../../user/packages/npm_registry/index.md#install-from-the-instance-level).
-
-To transfer a project:
-
-1. On the left sidebar, select **Search or go to** and find your project.
-1. Select **Settings > General**.
-1. Expand **Advanced**.
-1. Under **Transfer project**, choose the namespace to transfer the project to.
-1. Select **Transfer project**.
-1. Enter the project's name and select **Confirm**.
-
-You are redirected to the project's new page and GitLab applies a redirect. For more information about repository redirects, see [What happens when a repository path changes](../repository/index.md#what-happens-when-a-repository-path-changes).
-
-NOTE:
-If you are an administrator, you can also use the [administration interface](../../../administration/admin_area.md#administering-projects)
-to move any project to any namespace.
-
-### Transferring a GitLab SaaS project to a different subscription tier
-
-When you transfer a project from a namespace licensed for GitLab SaaS Premium or Ultimate to GitLab Free:
-
-- [Project access tokens](../../../user/project/settings/project_access_tokens.md) are revoked.
-- [Pipeline subscriptions](../../../ci/pipelines/index.md#trigger-a-pipeline-when-an-upstream-project-is-rebuilt)
- and [test cases](../../../ci/test_cases/index.md) are deleted.
-
-## Archive a project
-
-When you archive a project, the repository, packages, issues, merge requests, and all
-other features become read-only. Archived projects are also hidden from project lists.
-
-To archive a project:
-
-1. On the left sidebar, select **Search or go to** and find your project.
-1. Select **Settings > General**.
-1. Expand **Advanced**.
-1. In the **Archive project** section, select **Archive project**.
-1. To confirm, select **OK**.
-
-## Unarchive a project
-
-When you unarchive a project, the read-only restriction is removed,
-and the project becomes available in project lists.
-
-Prerequisites:
-
-- You must be an administrator or have the Owner role for the project.
-
-1. Find the archived project.
- 1. On the left sidebar, select **Search or go to**.
- 1. Select **View all my projects**.
- 1. Select **Explore projects**.
- 1. In the **Sort projects** dropdown list, select **Show archived projects**.
- 1. In the **Filter by name** field, enter the project name.
- 1. Select the project link.
-1. On the left sidebar, select **Settings > General**.
-1. Under **Advanced**, select **Expand**.
-1. In the **Unarchive project** section, select **Unarchive project**.
-1. To confirm, select **OK**.
-
-## Restore a project **(PREMIUM ALL)**
-
-Prerequisites:
-
-- You must have the Owner role for the project.
-- The project must be [marked for deletion](../working_with_projects.md#delete-a-project).
-
-To restore a project marked for deletion:
-
-1. On the left sidebar, select **Search or go to** and find your project.
-1. Select **Settings > General**.
-1. Expand **Advanced**.
-1. In the Restore project section, select **Restore project**.
-
-## Related topics
-
-- [Alert integrations](../../../operations/incident_management/integrations.md#configuration)
-- [PagerDuty incident management](../../../operations/incident_management/manage_incidents.md#using-the-pagerduty-webhook)
-- [SLA countdown timer](../../../operations/incident_management/incidents.md#service-level-agreement-countdown-timer)
-- [Error tracking](../../../operations/error_tracking.md)
-- [Incidents sync](../../../operations/incident_management/status_page.md#sync-incidents-to-the-status-page)
-- [Service Desk](../service_desk/index.md)
-
-## Troubleshooting
-
-When working with project settings, you might encounter the following issues, or require alternate methods to complete specific tasks.
-
-### Transfer a project through console
-
-If transferring a project through the UI or API is not working, you can attempt the transfer in a [Rails console session](../../../administration/operations/rails_console.md#starting-a-rails-console-session).
-
-```ruby
-p = Project.find_by_full_path('<project_path>')
-
-# To set the owner of the project
-current_user = p.creator
-
-# Namespace where you want this to be moved
-namespace = Namespace.find_by_full_path("<new_namespace>")
-
-Projects::TransferService.new(p, current_user).execute(namespace)
-```
+<!-- This redirect file can be deleted after <2024-02-28>. -->
+<!-- Redirects that point to other docs in the same project expire in three months. -->
+<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
+<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/project/settings/migrate_projects.md b/doc/user/project/settings/migrate_projects.md
new file mode 100644
index 00000000000..708a2ef5f3b
--- /dev/null
+++ b/doc/user/project/settings/migrate_projects.md
@@ -0,0 +1,127 @@
+---
+stage: Data Stores
+group: Tenant Scale
+info: 'To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments'
+type: reference, index, howto
+---
+
+# Migrate projects **(FREE ALL)**
+
+## Export a project
+
+You can [export a project and its data](import_export.md#export-a-project-and-its-data).
+
+## Transfer a project to another namespace
+
+When you transfer a project to another namespace, you move the project to a different group.
+
+Prerequisites:
+
+- You must have at least the Maintainer role for the [group](../../group/index.md#create-a-group) you are transferring to.
+- You must be the Owner of the project you transfer.
+- The group must allow creation of new projects.
+- The project must not contain any [container images](../../packages/container_registry/index.md#move-or-rename-container-registry-repositories).
+- The project must not have a security policy.
+ If a security policy is assigned to the project, it is automatically unassigned during the transfer.
+- If the root namespace changes, you must remove npm packages that follow the [naming convention](../../../user/packages/npm_registry/index.md#naming-convention) from the project.
+ After you transfer the project you can either:
+
+ - Update the package scope with the new root namespace path, and publish it again to the project.
+ - Republish the package to the project without updating the root namespace path, which causes the package to no longer follow the naming convention.
+ If you republish the package without updating the root namespace path, it will not be available at the [instance level endpoint](../../../user/packages/npm_registry/index.md#install-from-the-instance-level).
+
+To transfer a project:
+
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Select **Settings > General**.
+1. Expand **Advanced**.
+1. Under **Transfer project**, choose the namespace to transfer the project to.
+1. Select **Transfer project**.
+1. Enter the project's name and select **Confirm**.
+
+You are redirected to the project's new page and GitLab applies a redirect. For more information about repository redirects, see [What happens when a repository path changes](../repository/index.md#what-happens-when-a-repository-path-changes).
+
+NOTE:
+If you are an administrator, you can also use the [administration interface](../../../administration/admin_area.md#administering-projects)
+to move any project to any namespace.
+
+### Transferring a GitLab SaaS project to a different subscription tier
+
+When you transfer a project from a namespace licensed for GitLab SaaS Premium or Ultimate to GitLab Free:
+
+- [Project access tokens](../../../user/project/settings/project_access_tokens.md) are revoked.
+- [Pipeline subscriptions](../../../ci/pipelines/index.md#trigger-a-pipeline-when-an-upstream-project-is-rebuilt)
+ and [test cases](../../../ci/test_cases/index.md) are deleted.
+
+## Archive a project
+
+When you archive a project, the repository, packages, issues, merge requests, and all
+other features become read-only. Archived projects are also hidden from project lists.
+
+To archive a project:
+
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Select **Settings > General**.
+1. Expand **Advanced**.
+1. In the **Archive project** section, select **Archive project**.
+1. To confirm, select **OK**.
+
+## Unarchive a project
+
+When you unarchive a project, the read-only restriction is removed,
+and the project becomes available in project lists.
+
+Prerequisites:
+
+- You must be an administrator or have the Owner role for the project.
+
+1. Find the archived project.
+ 1. On the left sidebar, select **Search or go to**.
+ 1. Select **View all my projects**.
+ 1. Select **Explore projects**.
+ 1. In the **Sort projects** dropdown list, select **Show archived projects**.
+ 1. In the **Filter by name** field, enter the project name.
+ 1. Select the project link.
+1. On the left sidebar, select **Settings > General**.
+1. Under **Advanced**, select **Expand**.
+1. In the **Unarchive project** section, select **Unarchive project**.
+1. To confirm, select **OK**.
+
+## Restore a project **(PREMIUM ALL)**
+
+Prerequisites:
+
+- You must have the Owner role for the project.
+- The project must be [marked for deletion](../working_with_projects.md#delete-a-project).
+
+To restore a project marked for deletion:
+
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Select **Settings > General**.
+1. Expand **Advanced**.
+1. In the Restore project section, select **Restore project**.
+
+## Troubleshooting
+
+When working with project settings, you might encounter the following issues, or require alternate methods to complete specific tasks.
+
+### Transfer a project through console
+
+If transferring a project through the UI or API is not working, you can attempt the transfer in a [Rails console session](../../../administration/operations/rails_console.md#starting-a-rails-console-session).
+
+```ruby
+p = Project.find_by_full_path('<project_path>')
+
+# To set the owner of the project
+current_user = p.creator
+
+# Namespace where you want this to be moved
+namespace = Namespace.find_by_full_path("<new_namespace>")
+
+Projects::TransferService.new(p, current_user).execute(namespace)
+```
+
+## Related topics
+
+- [Migrating projects using file exports](import_export.md)
+- [Troubleshooting file export project migrations](import_export_troubleshooting.md)
diff --git a/doc/user/project/settings/project_features_permissions.md b/doc/user/project/settings/project_features_permissions.md
index 86ebe7df014..695733b078c 100644
--- a/doc/user/project/settings/project_features_permissions.md
+++ b/doc/user/project/settings/project_features_permissions.md
@@ -91,6 +91,37 @@ Prerequisites:
1. Expand **Visibility, project features, permissions**.
1. Clear the **Disable email notifications** checkbox.
+## Configure merge request settings for a project
+
+Configure your project's merge request settings:
+
+- Set up the [merge request method](../merge_requests/methods/index.md) (merge commit, fast-forward merge).
+- Add merge request [description templates](../description_templates.md).
+- Enable:
+ - [Merge request approvals](../merge_requests/approvals/index.md).
+ - [Status checks](../merge_requests/status_checks.md).
+ - [Merge only if pipeline succeeds](../merge_requests/merge_when_pipeline_succeeds.md).
+ - [Merge only when all threads are resolved](../merge_requests/index.md#prevent-merge-unless-all-threads-are-resolved).
+ - [Required associated issue from Jira](../../../integration/jira/issues.md#require-associated-jira-issue-for-merge-requests-to-be-merged).
+ - [GitLab Duo Suggested Reviewers](../merge_requests/reviews/index.md#gitlab-duo-suggested-reviewers)
+ - [**Delete source branch when merge request is accepted** option by default](#delete-the-source-branch-on-merge-by-default).
+- Configure:
+ - [Suggested changes commit messages](../merge_requests/reviews/suggestions.md#configure-the-commit-message-for-applied-suggestions).
+ - [Merge and squash commit message templates](../merge_requests/commit_templates.md).
+ - [Default target project](../merge_requests/creating_merge_requests.md#set-the-default-target-project) for merge requests coming from forks.
+
+### Delete the source branch on merge by default
+
+In merge requests, you can change the default behavior so that the
+**Delete the source branch** checkbox is always selected.
+
+To set this default:
+
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Select **Settings > Merge requests**.
+1. Select **Enable "Delete source branch" option by default**.
+1. Select **Save changes**.
+
## Project topics
Topics are labels that you can assign to projects to help you organize and find them.
diff --git a/doc/user/project/working_with_projects.md b/doc/user/project/working_with_projects.md
index 11e51892ddd..01b9a36baf7 100644
--- a/doc/user/project/working_with_projects.md
+++ b/doc/user/project/working_with_projects.md
@@ -215,6 +215,27 @@ You can filter projects by the programming language they use. To do this:
A list of projects that use the selected language is displayed.
+## Rename a repository
+
+A project's repository name defines its URL and its place on the file disk
+where GitLab is installed.
+
+Prerequisites:
+
+- You must be an administrator or have the Maintainer or Owner role for the project.
+
+NOTE:
+When you change the repository path, users may experience issues if they push to, or pull from, the old URL. For more information, see
+[redirects when renaming repositories](../project/repository/index.md#what-happens-when-a-repository-path-changes).
+
+To rename a repository:
+
+1. On the left sidebar, select **Search or go to** and find your project.
+1. Select **Settings > General**.
+1. Expand **Advanced**.
+1. In the **Change path** text box, edit the path.
+1. Select **Change path**.
+
## Access the Project overview page by using the project ID
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/53671) in GitLab 11.8.
@@ -278,14 +299,6 @@ Prerequisites:
1. To use LDAP groups to manage access to a project,
[add the LDAP-synchronized group as a member](../group/manage.md) to the project.
-## Related topics
-
-- [Import a project](../../user/project/import/index.md).
-- [Connect an external repository to GitLab CI/CD](../../ci/ci_cd_for_external_repos/index.md).
-- [Fork a project](repository/forking_workflow.md#create-a-fork).
-- Adjust [project visibility](../../user/public_access.md#change-project-visibility) and [permissions](settings/project_features_permissions.md#configure-project-features-and-permissions).
-- [Limitations on project and group names](../../user/reserved_names.md#limitations-on-project-and-group-names)
-
## Troubleshooting
When working with projects, you might encounter the following issues, or require alternate methods to complete specific tasks.
@@ -385,3 +398,11 @@ end
To find features that can be toggled, run `pp p.project_feature`.
Available permission levels are listed in
[concerns/featurable.rb](https://gitlab.com/gitlab-org/gitlab/blob/master/app/models/concerns/featurable.rb).
+
+## Related topics
+
+- [Import a project](../../user/project/import/index.md).
+- [Connect an external repository to GitLab CI/CD](../../ci/ci_cd_for_external_repos/index.md).
+- [Fork a project](repository/forking_workflow.md#create-a-fork).
+- Adjust [project visibility](../../user/public_access.md#change-project-visibility) and [permissions](settings/project_features_permissions.md#configure-project-features-and-permissions).
+- [Limitations on project and group names](../../user/reserved_names.md#limitations-on-project-and-group-names)
diff --git a/qa/qa/page/main/login.rb b/qa/qa/page/main/login.rb
index 028a6d37af4..f8f93d154a1 100644
--- a/qa/qa/page/main/login.rb
+++ b/qa/qa/page/main/login.rb
@@ -105,6 +105,8 @@ module QA
end
Page::Main::Menu.perform(&:signed_in?)
+
+ dismiss_duo_chat_popup
end
# Handle request for password change
@@ -251,6 +253,8 @@ module QA
wait_for_gitlab_to_respond
+ dismiss_duo_chat_popup
+
return if skip_page_validation
Page::Main::Menu.validate_elements_present!
@@ -258,6 +262,14 @@ module QA
validate_canary!
end
+ def dismiss_duo_chat_popup
+ return unless has_element?('duo-chat-promo-callout-popover')
+
+ within_element('duo-chat-promo-callout-popover') do
+ click_element('close-button')
+ end
+ end
+
def fill_in_credential(user)
fill_element 'username-field', user.username
fill_element 'password-field', user.password
diff --git a/qa/qa/specs/features/browser_ui/3_create/repository/push_over_ssh_spec.rb b/qa/qa/specs/features/browser_ui/3_create/repository/push_over_ssh_spec.rb
index dcee723a1c4..94ba2a29ba6 100644
--- a/qa/qa/specs/features/browser_ui/3_create/repository/push_over_ssh_spec.rb
+++ b/qa/qa/specs/features/browser_ui/3_create/repository/push_over_ssh_spec.rb
@@ -27,7 +27,8 @@ module QA
end
it 'pushes code to the repository via SSH', :smoke, :skip_fips_env,
- testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347825' do
+ testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347825',
+ except: { job: 'review-qa-*' } do
Resource::Repository::ProjectPush.fabricate! do |push|
push.project = project
push.ssh_key = @key
@@ -43,7 +44,8 @@ module QA
end
it 'pushes multiple branches and tags together', :smoke, :skip_fips_env,
- testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347826' do
+ testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347826',
+ except: { job: 'review-qa-*' } do
branches = []
tags = []
Git::Repository.perform do |repository|