From 3e28a87cd5f53ca71a08074b2226a93320818050 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Fri, 26 Jul 2024 18:12:07 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .../release-environments/main.gitlab-ci.yml | 2 +- .rubocop_todo/gitlab/bounded_contexts.yml | 1 - .../layout/empty_line_after_magic_comment.yml | 1 - .../style/inline_disable_annotation.yml | 1 - .ruby-version | 2 +- Gemfile | 4 +- Gemfile.checksum | 4 +- Gemfile.lock | 8 +- .../components/editor/ci_editor_header.vue | 4 +- .../diffs/components/file_row_stats.vue | 2 +- app/assets/javascripts/diffs/store/actions.js | 9 ++- .../merge_conflict_resolver_app.vue | 2 +- .../graphs/components/code_coverage.vue | 4 +- .../components/service_desk_setting.vue | 5 +- .../components/review_app_link.vue | 2 +- .../components/file_finder/item.vue | 2 +- app/assets/stylesheets/framework/common.scss | 4 - .../metrics/dashboard/annotation_policy.rb | 9 --- app/views/admin/health_check/show.html.haml | 2 +- app/views/admin/projects/show.html.haml | 4 +- app/views/admin/users/show.html.haml | 4 +- .../prometheus_alert_fired_email.html.haml | 7 -- .../prometheus_alert_fired_email.text.erb | 4 - app/views/projects/_issue.html.haml | 2 +- app/views/projects/artifacts/file.html.haml | 5 ++ .../x509/_certificate_details.html.haml | 2 +- .../merge_requests/_nav_btns.html.haml | 1 + .../projects/merge_requests/_page.html.haml | 2 +- app/views/shared/notes/_note.html.haml | 2 +- app/views/users/_profile_sidebar.html.haml | 22 ++--- .../{wip => beta}/reviewer_assign_drawer.yml | 4 +- ...e-option-to-remove-project-immediately.yml | 2 +- doc/administration/admin_area.md | 29 +++---- doc/administration/auditor_users.md | 6 +- doc/administration/cicd.md | 2 +- .../dedicated/configure_instance.md | 2 +- doc/administration/geo/index.md | 2 +- .../geo/replication/datatypes.md | 2 +- .../troubleshooting/client_http.md | 4 +- .../geo/replication/troubleshooting/common.md | 8 +- .../troubleshooting/replication.md | 2 +- .../troubleshooting/synchronization.md | 2 +- .../geo/secondary_proxy/runners.md | 2 +- .../two_single_node_external_services.md | 2 +- .../geo/setup/two_single_node_sites.md | 2 +- doc/administration/geo_sites.md | 2 +- doc/administration/get_started.md | 4 +- doc/administration/gitaly/configure_gitaly.md | 2 +- doc/administration/instance_limits.md | 4 +- doc/administration/integration/kroki.md | 2 +- doc/administration/job_artifacts.md | 4 +- doc/administration/labels.md | 4 +- doc/administration/lfs/index.md | 2 +- doc/administration/maintenance_mode/index.md | 2 +- doc/administration/moderate_users.md | 16 ++-- .../performance/grafana_configuration.md | 4 +- doc/administration/pages/index.md | 2 +- doc/administration/reporting/spamcheck.md | 2 +- doc/administration/repository_checks.md | 2 +- .../repository_storage_paths.md | 4 +- doc/administration/review_abuse_reports.md | 2 +- doc/administration/review_spam_logs.md | 2 +- .../settings/account_and_limit_settings.md | 2 +- .../settings/continuous_integration.md | 8 +- .../settings/push_event_activities_limit.md | 2 +- doc/administration/settings/scim_setup.md | 2 +- .../settings/security_and_compliance.md | 2 +- .../settings/usage_statistics.md | 6 +- .../settings/user_and_ip_rate_limits.md | 4 +- .../sidekiq/sidekiq_troubleshooting.md | 2 +- doc/administration/snippets/index.md | 2 +- .../static_objects_external_storage.md | 2 +- doc/administration/user_settings.md | 2 +- doc/administration/wikis/index.md | 2 +- doc/api/group_import_export.md | 2 +- doc/api/project_import_export.md | 2 +- doc/api/projects.md | 2 +- doc/api/runners.md | 2 +- doc/api/settings.md | 6 +- doc/api/templates/dockerfiles.md | 2 +- doc/ci/components/index.md | 2 +- doc/ci/pipelines/compute_minutes.md | 4 +- doc/ci/runners/new_creation_workflow.md | 2 +- .../runners/runner_fleet_dashboard_groups.md | 2 +- doc/ci/runners/runners_scope.md | 4 +- doc/ci/variables/index.md | 2 +- doc/development/application_limits.md | 2 +- .../styleguide/availability_details.md | 2 +- .../documentation/styleguide/index.md | 2 +- .../documentation/styleguide/word_list.md | 2 +- doc/development/geo.md | 4 +- .../metrics/metrics_dictionary.md | 2 +- .../service_ping/troubleshooting.md | 2 +- doc/development/internal_api/index.md | 6 +- .../permissions/predefined_roles.md | 2 +- .../exploratory_testing.md | 2 +- .../model_and_services.md | 2 +- .../end_to_end/rspec_metadata_tests.md | 2 +- doc/install/azure/index.md | 2 +- doc/install/docker_troubleshooting.md | 2 +- .../advanced_search/elasticsearch.md | 4 +- .../elasticsearch_troubleshooting.md | 2 +- doc/integration/akismet.md | 2 +- doc/integration/bitbucket.md | 2 +- doc/integration/sourcegraph.md | 4 +- doc/raketasks/user_management.md | 2 +- doc/security/hardening_nist_800_53.md | 12 +-- doc/security/rate_limits.md | 2 +- doc/security/ssh_keys_restrictions.md | 2 +- doc/security/unlock_user.md | 2 +- doc/subscriptions/self_managed/index.md | 4 +- doc/topics/autodevops/index.md | 2 +- doc/topics/autodevops/prepare_deployment.md | 2 +- doc/topics/autodevops/requirements.md | 2 +- .../install_gitlab_single_node/index.md | 2 +- doc/tutorials/left_sidebar/index.md | 4 +- doc/update/deprecations.md | 2 +- doc/update/versions/gitlab_16_changes.md | 2 +- .../index.md | 2 +- doc/user/compliance/audit_events.md | 2 +- .../index.md | 2 +- doc/user/group/saml_sso/scim_setup.md | 2 +- .../group/saml_sso/troubleshooting_scim.md | 2 +- .../reduce_container_registry_storage.md | 2 +- .../supported_functionality.md | 2 +- doc/user/profile/account/create_accounts.md | 2 +- doc/user/profile/account/delete_account.md | 8 +- doc/user/project/clusters/add_eks_clusters.md | 2 +- .../project/clusters/add_existing_cluster.md | 4 +- doc/user/project/clusters/add_gke_clusters.md | 2 +- .../project/clusters/add_remove_clusters.md | 2 +- .../codeowners/code_owners_troubleshooting.md | 81 +++++++++++++++++++ doc/user/project/codeowners/index.md | 71 ---------------- doc/user/project/project_topics.md | 2 +- doc/user/project/protected_branches.md | 2 +- doc/user/project/settings/import_export.md | 4 +- doc/user/project/working_with_projects.md | 2 +- lib/gitlab/git/repository.rb | 13 +++ lib/gitlab/gitaly_client/diff_blob.rb | 11 +++ .../gitaly_client/diff_blobs_stitcher.rb | 44 ++++++++++ lib/gitlab/gitaly_client/diff_service.rb | 45 +++++++++++ locale/gitlab.pot | 34 ++++---- .../user_sees_nav_buttons_spec.rb | 55 +++++++++++++ .../diffs/components/file_row_stats_spec.js | 2 +- spec/frontend/diffs/store/actions_spec.js | 21 +++++ .../components/service_desk_setting_spec.js | 4 +- spec/lib/gitlab/git/repository_spec.rb | 36 +++++++++ .../gitlab/gitaly_client/diff_blob_spec.rb | 25 ++++++ .../gitaly_client/diff_blobs_stitcher_spec.rb | 56 +++++++++++++ .../gitlab/gitaly_client/diff_service_spec.rb | 44 ++++++++++ spec/mailers/emails/projects_spec.rb | 3 - ...amespace_organization_validation_helper.rb | 4 +- 152 files changed, 672 insertions(+), 331 deletions(-) delete mode 100644 app/policies/metrics/dashboard/annotation_policy.rb rename config/feature_flags/{wip => beta}/reviewer_assign_drawer.yml (75%) create mode 100644 doc/user/project/codeowners/code_owners_troubleshooting.md create mode 100644 lib/gitlab/gitaly_client/diff_blob.rb create mode 100644 lib/gitlab/gitaly_client/diff_blobs_stitcher.rb create mode 100644 lib/gitlab/gitaly_client/diff_service.rb create mode 100644 spec/features/merge_requests/user_sees_nav_buttons_spec.rb create mode 100644 spec/lib/gitlab/gitaly_client/diff_blob_spec.rb create mode 100644 spec/lib/gitlab/gitaly_client/diff_blobs_stitcher_spec.rb create mode 100644 spec/lib/gitlab/gitaly_client/diff_service_spec.rb diff --git a/.gitlab/ci/release-environments/main.gitlab-ci.yml b/.gitlab/ci/release-environments/main.gitlab-ci.yml index 31de1a335a2..df1f0b86dc0 100644 --- a/.gitlab/ci/release-environments/main.gitlab-ci.yml +++ b/.gitlab/ci/release-environments/main.gitlab-ci.yml @@ -89,7 +89,7 @@ release-environments-qa: extends: - .qa-base timeout: 30m - parallel: 5 + parallel: 3 variables: QA_SCENARIO: "Test::Instance::Smoke" RELEASE: "${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab-ee-qa:${CI_COMMIT_SHA}" diff --git a/.rubocop_todo/gitlab/bounded_contexts.yml b/.rubocop_todo/gitlab/bounded_contexts.yml index 6689f5e1b99..7b74ce08fb6 100644 --- a/.rubocop_todo/gitlab/bounded_contexts.yml +++ b/.rubocop_todo/gitlab/bounded_contexts.yml @@ -1378,7 +1378,6 @@ Gitlab/BoundedContexts: - 'app/policies/list_policy.rb' - 'app/policies/merge_request_policy.rb' - 'app/policies/merge_requests_closing_issues_policy.rb' - - 'app/policies/metrics/dashboard/annotation_policy.rb' - 'app/policies/milestone_policy.rb' - 'app/policies/namespace/package_setting_policy.rb' - 'app/policies/namespace/root_storage_statistics_policy.rb' diff --git a/.rubocop_todo/layout/empty_line_after_magic_comment.yml b/.rubocop_todo/layout/empty_line_after_magic_comment.yml index 7ece827f411..f01355b4a76 100644 --- a/.rubocop_todo/layout/empty_line_after_magic_comment.yml +++ b/.rubocop_todo/layout/empty_line_after_magic_comment.yml @@ -63,7 +63,6 @@ Layout/EmptyLineAfterMagicComment: - 'app/policies/dependency_proxy/group_setting_policy.rb' - 'app/policies/dependency_proxy/image_ttl_group_policy_policy.rb' - 'app/policies/dependency_proxy/manifest_policy.rb' - - 'app/policies/metrics/dashboard/annotation_policy.rb' - 'app/policies/packages/composer/metadatum_policy.rb' - 'app/policies/packages/conan/file_metadatum_policy.rb' - 'app/policies/packages/conan/metadatum_policy.rb' diff --git a/.rubocop_todo/style/inline_disable_annotation.yml b/.rubocop_todo/style/inline_disable_annotation.yml index 4b50d7600e7..569010926b5 100644 --- a/.rubocop_todo/style/inline_disable_annotation.yml +++ b/.rubocop_todo/style/inline_disable_annotation.yml @@ -1702,7 +1702,6 @@ Style/InlineDisableAnnotation: - 'ee/lib/ee/users/internal.rb' - 'ee/lib/elastic/instance_proxy_util.rb' - 'ee/lib/elastic/latest/git_class_proxy.rb' - - 'ee/lib/elastic/latest/issue_class_proxy.rb' - 'ee/lib/elastic/latest/note_class_proxy.rb' - 'ee/lib/elastic/latest/project_class_proxy.rb' - 'ee/lib/elastic/latest/user_class_proxy.rb' diff --git a/.ruby-version b/.ruby-version index b347b11eac8..351227fca34 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.2.3 +3.2.4 diff --git a/Gemfile b/Gemfile index afdb63eadf7..42ae2957646 100644 --- a/Gemfile +++ b/Gemfile @@ -589,7 +589,7 @@ gem 'gitlab-mail_room', '~> 0.0.24', require: 'mail_room', feature_category: :sh gem 'email_reply_trimmer', '~> 0.1' # rubocop:todo Gemfile/MissingFeatureCategory gem 'html2text' # rubocop:todo Gemfile/MissingFeatureCategory -gem 'stackprof', '~> 0.2.25', require: false # rubocop:todo Gemfile/MissingFeatureCategory +gem 'stackprof', '~> 0.2.26', require: false, feature_category: :shared gem 'rbtrace', '~> 0.4', require: false # rubocop:todo Gemfile/MissingFeatureCategory gem 'memory_profiler', '~> 1.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory gem 'activerecord-explain-analyze', '~> 0.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory @@ -614,7 +614,7 @@ gem 'ssh_data', '~> 1.3' # rubocop:todo Gemfile/MissingFeatureCategory gem 'spamcheck', '~> 1.3.0' # rubocop:todo Gemfile/MissingFeatureCategory # Gitaly GRPC protocol definitions -gem 'gitaly', '~> 17.1.0', feature_category: :gitaly +gem 'gitaly', '~> 17.2.0', feature_category: :gitaly # KAS GRPC protocol definitions gem 'kas-grpc', '~> 0.5.0', feature_category: :deployment_management diff --git a/Gemfile.checksum b/Gemfile.checksum index a9afad7bcd3..c62ad21033c 100644 --- a/Gemfile.checksum +++ b/Gemfile.checksum @@ -206,7 +206,7 @@ {"name":"gettext","version":"3.4.9","platform":"ruby","checksum":"292864fe6a15c224cee4125a4a72fab426fdbb280e4cff3cfe44935f549b009a"}, {"name":"gettext_i18n_rails","version":"1.12.0","platform":"ruby","checksum":"6ac4817731a9e2ce47e1e83381ac34f9142263bc2911aaaafb2526d2f1afc1be"}, {"name":"git","version":"1.18.0","platform":"ruby","checksum":"c9b80462e4565cd3d7a9ba8440c41d2c52244b17b0dad0bfddb46de70630c465"}, -{"name":"gitaly","version":"17.1.2","platform":"ruby","checksum":"def450eec7243770cba6f874502dcde470338968a724f1b86efd62a8caea2c5f"}, +{"name":"gitaly","version":"17.2.0","platform":"ruby","checksum":"48eee8883c43bb2f8fedbb43e4543439cfe37c33becebaec9ea1d425f9cce865"}, {"name":"gitlab","version":"4.19.0","platform":"ruby","checksum":"3f645e3e195dbc24f0834fbf83e8ccfb2056d8e9712b01a640aad418a6949679"}, {"name":"gitlab-chronic","version":"0.10.5","platform":"ruby","checksum":"f80f18dc699b708870a80685243331290bc10cfeedb6b99c92219722f729c875"}, {"name":"gitlab-dangerfiles","version":"4.8.0","platform":"ruby","checksum":"b327d079552ec974a63bf34d749a0308425af6ebf51d01064f1a6ff216a523db"}, @@ -678,7 +678,7 @@ {"name":"sprockets-rails","version":"3.5.1","platform":"ruby","checksum":"c44626cb3887a1a8b572ca258685db33b4ebd041aa73428a716eac444ee5ef48"}, {"name":"ssh_data","version":"1.3.0","platform":"ruby","checksum":"ec7c1e95a3aebeee412147998f4c147b4b05da6ed0aafda6083f9449318eaac0"}, {"name":"ssrf_filter","version":"1.0.8","platform":"ruby","checksum":"03f49f54837e407d43ee93ec733a8a94dc1bcf8185647ac61606e63aaedaa0db"}, -{"name":"stackprof","version":"0.2.25","platform":"ruby","checksum":"28db0e2d22b817ae35def7163822505a04a026b02ef119b6aa89d70b967b0d2e"}, +{"name":"stackprof","version":"0.2.26","platform":"ruby","checksum":"ee408cbcccd9422aabd66edff8b76a77d67955f2ee1b674961b5dfaa2cc7b8bd"}, {"name":"state_machines","version":"0.5.0","platform":"ruby","checksum":"23e6249d374a920b528dccade403518b4abbd83841a3e2c9ef13e6f1a009b102"}, {"name":"state_machines-activemodel","version":"0.8.0","platform":"ruby","checksum":"e932dab190d4be044fb5f9cab01a3ea0b092c5f113d4676c6c0a0d49bf738d2c"}, {"name":"state_machines-activerecord","version":"0.8.0","platform":"ruby","checksum":"072fb701b8ab03de0608297f6c55dc34ed096e556fa8f77e556f3c461c71aab6"}, diff --git a/Gemfile.lock b/Gemfile.lock index f12ddb56f80..9fa46ee0694 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -692,7 +692,7 @@ GEM git (1.18.0) addressable (~> 2.8) rchardet (~> 1.8) - gitaly (17.1.2) + gitaly (17.2.0) grpc (~> 1.0) gitlab (4.19.0) httparty (~> 0.20) @@ -1747,7 +1747,7 @@ GEM sprockets (>= 3.0.0) ssh_data (1.3.0) ssrf_filter (1.0.8) - stackprof (0.2.25) + stackprof (0.2.26) state_machines (0.5.0) state_machines-activemodel (0.8.0) activemodel (>= 5.1) @@ -2022,7 +2022,7 @@ DEPENDENCIES gdk-toogle (~> 0.9, >= 0.9.5) gettext (~> 3.4, >= 3.4.9) gettext_i18n_rails (~> 1.12.0) - gitaly (~> 17.1.0) + gitaly (~> 17.2.0) gitlab-backup-cli! gitlab-chronic (~> 0.10.5) gitlab-dangerfiles (~> 4.8.0) @@ -2257,7 +2257,7 @@ DEPENDENCIES sprockets (~> 3.7.0) sprockets-rails (~> 3.5.1) ssh_data (~> 1.3) - stackprof (~> 0.2.25) + stackprof (~> 0.2.26) state_machines-activerecord (~> 0.8.0) static_holmes (~> 0.7.11) sys-filesystem (~> 1.4.3) diff --git a/app/assets/javascripts/ci/pipeline_editor/components/editor/ci_editor_header.vue b/app/assets/javascripts/ci/pipeline_editor/components/editor/ci_editor_header.vue index d9d54628f36..c6fd7f6a051 100644 --- a/app/assets/javascripts/ci/pipeline_editor/components/editor/ci_editor_header.vue +++ b/app/assets/javascripts/ci/pipeline_editor/components/editor/ci_editor_header.vue @@ -12,7 +12,7 @@ import { export default { i18n: { - browseCatalog: __('Browse CI/CD Catalog'), + browseCatalog: __('CI/CD Catalog'), help: __('Help'), jobAssistant: s__('JobAssistant|Job assistant'), }, @@ -67,7 +67,7 @@ export default { +{{ file.addedLines }} - -{{ file.removedLines }} + -{{ file.removedLines }} diff --git a/app/assets/javascripts/diffs/store/actions.js b/app/assets/javascripts/diffs/store/actions.js index 1f390e06406..80375f6156d 100644 --- a/app/assets/javascripts/diffs/store/actions.js +++ b/app/assets/javascripts/diffs/store/actions.js @@ -10,7 +10,12 @@ import axios from '~/lib/utils/axios_utils'; import { HTTP_STATUS_NOT_FOUND, HTTP_STATUS_OK } from '~/lib/utils/http_status'; import Poll from '~/lib/utils/poll'; -import { mergeUrlParams, getLocationHash, getParameterValues } from '~/lib/utils/url_utility'; +import { + mergeUrlParams, + getLocationHash, + getParameterValues, + removeParams, +} from '~/lib/utils/url_utility'; import notesEventHub from '~/notes/event_hub'; import { generateTreeList } from '~/diffs/utils/tree_worker_utils'; import { sortTree } from '~/ide/stores/utils'; @@ -394,7 +399,7 @@ export const fetchCoverageFiles = ({ commit, state }) => { export const setHighlightedRow = ({ commit }, { lineCode, event }) => { if (event && event.target.href) { event.preventDefault(); - window.history.replaceState(null, undefined, event.target.href); + window.history.replaceState(null, undefined, removeParams(['pin'], event.target.href)); } const fileHash = lineCode.split('_')[0]; commit(types.SET_HIGHLIGHTED_ROW, lineCode); diff --git a/app/assets/javascripts/merge_conflicts/merge_conflict_resolver_app.vue b/app/assets/javascripts/merge_conflicts/merge_conflict_resolver_app.vue index c98db96f600..1886e7641df 100644 --- a/app/assets/javascripts/merge_conflicts/merge_conflict_resolver_app.vue +++ b/app/assets/javascripts/merge_conflicts/merge_conflict_resolver_app.vue @@ -100,7 +100,7 @@ export default {
diff --git a/app/assets/javascripts/vue_shared/components/file_finder/item.vue b/app/assets/javascripts/vue_shared/components/file_finder/item.vue index 59a8a24baad..4276b8251cf 100644 --- a/app/assets/javascripts/vue_shared/components/file_finder/item.vue +++ b/app/assets/javascripts/vue_shared/components/file_finder/item.vue @@ -106,7 +106,7 @@ export default { {{ file.addedLines }} - + {{ file.removedLines }} diff --git a/app/assets/stylesheets/framework/common.scss b/app/assets/stylesheets/framework/common.scss index 75d15e207ea..ccaf9245087 100644 --- a/app/assets/stylesheets/framework/common.scss +++ b/app/assets/stylesheets/framework/common.scss @@ -72,13 +72,9 @@ /** COLORS **/ .cgray { color: $gl-text-color; } .clgray { color: $gray-200; } -.cred { color: $red-500; } .cgreen { color: $green-600; } .cdark { color: $gray-800; } -.fwhite { fill: $white; } -.fgray { fill: $gray-500; } - .text-plain, .text-plain:hover { color: $gl-text-color; diff --git a/app/policies/metrics/dashboard/annotation_policy.rb b/app/policies/metrics/dashboard/annotation_policy.rb deleted file mode 100644 index 25b78e104c4..00000000000 --- a/app/policies/metrics/dashboard/annotation_policy.rb +++ /dev/null @@ -1,9 +0,0 @@ -# frozen_string_literal: true -module Metrics - module Dashboard - class AnnotationPolicy < BasePolicy - delegate { @subject.cluster } - delegate { @subject.environment } - end - end -end diff --git a/app/views/admin/health_check/show.html.haml b/app/views/admin/health_check/show.html.haml index 7d6ac831a82..8c97eaf12e6 100644 --- a/app/views/admin/health_check/show.html.haml +++ b/app/views/admin/health_check/show.html.haml @@ -32,7 +32,7 @@ = sprite_icon('check', css_class: 'cgreen') #{ s_('HealthCheck|Healthy') } - else - = sprite_icon('warning-solid', css_class: 'cred') + = sprite_icon('warning-solid', css_class: 'gl-text-danger') #{ s_('HealthCheck|Unhealthy') } - c.with_body do - if no_errors diff --git a/app/views/admin/projects/show.html.haml b/app/views/admin/projects/show.html.haml index 82644a3e302..bdf52c635cc 100644 --- a/app/views/admin/projects/show.html.haml +++ b/app/views/admin/projects/show.html.haml @@ -111,7 +111,7 @@ %li{ class: 'gl-px-5!' } %span.light = _('repository:') - %strong.cred + %strong.gl-text-danger = _('does not exist') - if @project.archived? @@ -155,7 +155,7 @@ = _("This repository has never been checked.") - elsif @project.last_repository_check_failed? - failed_message = _("This repository was last checked %{last_check_timestamp}. The check %{strong_start}failed.%{strong_end} See the 'repocheck.log' file for error messages.") - - failed_message = failed_message % { last_check_timestamp: @project.last_repository_check_at.to_fs(:medium), strong_start: "", strong_end: "" } + - failed_message = failed_message % { last_check_timestamp: @project.last_repository_check_at.to_fs(:medium), strong_start: "", strong_end: "" } = failed_message.html_safe - else = _("This repository was last checked %{last_check_timestamp}. The check passed.") % { last_check_timestamp: @project.last_repository_check_at.to_fs(:medium) } diff --git a/app/views/admin/users/show.html.haml b/app/views/admin/users/show.html.haml index 00b2ab39a79..c27f4bb7f59 100644 --- a/app/views/admin/users/show.html.haml +++ b/app/views/admin/users/show.html.haml @@ -61,7 +61,7 @@ %li.two-factor-status{ class: list_item_classes } %span.gl-text-secondary= _('Two-factor Authentication:') .gl-col-span-2 - %strong{ class: @user.two_factor_enabled? ? 'cgreen' : 'cred' } + %strong{ class: @user.two_factor_enabled? ? 'cgreen' : 'gl-text-danger' } - if @user.two_factor_enabled? = _('Enabled') = link_button_to _('Disable'), disable_two_factor_admin_user_path(@user), aria: { label: _('Disable') }, data: { confirm: _('Are you sure?'), 'confirm-btn-variant': 'danger' }, method: :patch, class: 'gl-float-right', title: _('Disable Two-factor Authentication'), variant: :danger, size: :small @@ -103,7 +103,7 @@ %li{ class: list_item_classes } %span.gl-text-secondary= _('Confirmed:') .gl-col-span-2 - %strong.cred= _('No') + %strong.gl-text-danger= _('No') %li{ class: list_item_classes } %span.gl-text-secondary= _('Current sign-in IP:') diff --git a/app/views/notify/prometheus_alert_fired_email.html.haml b/app/views/notify/prometheus_alert_fired_email.html.haml index 25dc8e59073..054b221c34a 100644 --- a/app/views/notify/prometheus_alert_fired_email.html.haml +++ b/app/views/notify/prometheus_alert_fired_email.html.haml @@ -15,13 +15,6 @@ = _('Environment:') = env_name -- if metric_query = @alert.prometheus_alert&.full_query - %p - = _('Metric:') - - %pre - = metric_query - - if @alert.show_incident_issues_link? %p = link_to(_('View incident issues.'), @alert.incident_issues_link) diff --git a/app/views/notify/prometheus_alert_fired_email.text.erb b/app/views/notify/prometheus_alert_fired_email.text.erb index a9c1d98a396..6a62627c4b6 100644 --- a/app/views/notify/prometheus_alert_fired_email.text.erb +++ b/app/views/notify/prometheus_alert_fired_email.text.erb @@ -11,10 +11,6 @@ <%= _('Environment:') %> <%= env_name %> <% end %> -<% if metric_query = @alert.prometheus_alert&.full_query %> -<%= _('Metric:') %> <%= metric_query %> -<% end %> - <% if @alert.show_incident_issues_link? %> <%= _('View incident issues.') %> <%= @alert.incident_issues_link %> <% end %> diff --git a/app/views/projects/_issue.html.haml b/app/views/projects/_issue.html.haml index b757a6cabb6..2679199e9fd 100644 --- a/app/views/projects/_issue.html.haml +++ b/app/views/projects/_issue.html.haml @@ -30,7 +30,7 @@ = sprite_icon('milestone', css_class: 'gl-vertical-align-text-bottom') = issue.milestone.title - if issue.due_date - %span.issuable-due-date.gl-hidden.sm:gl-inline-block.has-tooltip{ class: "#{'cred' if issue.overdue? && !issue.closed?}", title: _('Due date') } + %span.issuable-due-date.gl-hidden.sm:gl-inline-block.has-tooltip{ class: "#{'gl-text-danger' if issue.overdue? && !issue.closed?}", title: _('Due date') }   = sprite_icon('calendar') = issue.due_date.to_fs(:medium) diff --git a/app/views/projects/artifacts/file.html.haml b/app/views/projects/artifacts/file.html.haml index ba7c5a975c3..0af465eab41 100644 --- a/app/views/projects/artifacts/file.html.haml +++ b/app/views/projects/artifacts/file.html.haml @@ -1,8 +1,13 @@ +- breadcrumb_title _('Artifacts') +- @breadcrumb_link = browse_project_job_artifacts_path(@project, @build) - page_title @path, _('Artifacts'), "#{@build.name} (##{@build.id})", _('Jobs') - add_page_specific_style 'page_bundles/tree' = render "projects/jobs/header" +- add_to_breadcrumbs(s_('CICD|Jobs'), project_jobs_path(@project)) +- add_to_breadcrumbs("##{@build.id}", project_job_path(@project, @build)) + .tree-holder = render 'projects/artifacts/file_navigation', project: @project, build: @build, path: @path diff --git a/app/views/projects/commit/x509/_certificate_details.html.haml b/app/views/projects/commit/x509/_certificate_details.html.haml index 22d297248f8..6e3c226ca6b 100644 --- a/app/views/projects/commit/x509/_certificate_details.html.haml +++ b/app/views/projects/commit/x509/_certificate_details.html.haml @@ -2,7 +2,7 @@ .gpg-popover-certificate-details %strong= _('Certificate Subject') - if signature.x509_certificate.revoked? - %strong.cred= _('(revoked)') + %strong.gl-text-danger= _('(revoked)') %ul - x509_subject(signature.x509_certificate.subject, ["CN", "O"]).map do |key, value| %li= key + "=" + value diff --git a/app/views/projects/merge_requests/_nav_btns.html.haml b/app/views/projects/merge_requests/_nav_btns.html.haml index d1e3f759f74..130d0c848a2 100644 --- a/app/views/projects/merge_requests/_nav_btns.html.haml +++ b/app/views/projects/merge_requests/_nav_btns.html.haml @@ -1,3 +1,4 @@ += render_if_exists 'projects/merge_requests/merge_trains_button' - if @can_bulk_update = render Pajamas::ButtonComponent.new(type: :submit, button_options: { class: 'gl-mr-3 js-bulk-update-toggle' }) do = _("Bulk edit") diff --git a/app/views/projects/merge_requests/_page.html.haml b/app/views/projects/merge_requests/_page.html.haml index a1d9a5c91de..92ad136080d 100644 --- a/app/views/projects/merge_requests/_page.html.haml +++ b/app/views/projects/merge_requests/_page.html.haml @@ -107,7 +107,7 @@ #js-review-bar{ data: review_bar_data(@merge_request, current_user) } -- if Feature.enabled?(:reviewer_assign_drawer, current_user, type: :wip) +- if Feature.enabled?(:reviewer_assign_drawer, current_user, type: :beta) #js-reviewer-drawer-portal - if current_user && Feature.enabled?(:mr_experience_survey, current_user) diff --git a/app/views/shared/notes/_note.html.haml b/app/views/shared/notes/_note.html.haml index 6e634ee3d46..b2d25f8b3c4 100644 --- a/app/views/shared/notes/_note.html.haml +++ b/app/views/shared/notes/_note.html.haml @@ -80,4 +80,4 @@ = note.attachment_identifier = link_to delete_attachment_project_note_path(note.project, note), title: _('Delete this attachment'), method: :delete, remote: true, data: { confirm: _('Are you sure you want to remove the attachment?') }, class: 'danger js-note-attachment-delete' do - = sprite_icon('remove', css_class: 'cred') + = sprite_icon('remove', css_class: 'gl-text-danger') diff --git a/app/views/users/_profile_sidebar.html.haml b/app/views/users/_profile_sidebar.html.haml index 1ae9afffd98..43f2f915720 100644 --- a/app/views/users/_profile_sidebar.html.haml +++ b/app/views/users/_profile_sidebar.html.haml @@ -30,21 +30,21 @@ %h2.gl-font-base.gl-mb-2.gl-mt-4= s_('UserProfile|Info') - if work_information(@user).present? .gl-display-flex.gl-gap-2.gl-mb-2 - = sprite_icon('work', css_class: 'fgray gl-mt-1 flex-shrink-0') + = sprite_icon('work', css_class: 'gl-fill-gray-500 gl-mt-1 flex-shrink-0') %span = work_information(@user, with_schema_markup: true) - if @user.location.present? .gl-display-flex.gl-gap-2.gl-mb-2 - = sprite_icon('location', css_class: 'fgray gl-mt-1 flex-shrink-0') + = sprite_icon('location', css_class: 'gl-fill-gray-500 gl-mt-1 flex-shrink-0') %span{ itemprop: 'addressLocality' } = @user.location - if user_local_time.present? .gl-display-flex.gl-gap-2.gl-mb-2{ data: { testid: 'user-local-time' } } - = sprite_icon('clock', css_class: 'fgray gl-mt-1 flex-shrink-0') + = sprite_icon('clock', css_class: 'gl-fill-gray-500 gl-mt-1 flex-shrink-0') %span = user_local_time .gl-display-flex.gl-gap-2.gl-mb-2 - = sprite_icon('calendar', css_class: 'fgray gl-mt-1 flex-shrink-0') + = sprite_icon('calendar', css_class: 'gl-fill-gray-500 gl-mt-1 flex-shrink-0') %span= s_('Member since %{date}') % { date: l(@user.created_at.to_date, format: :long) } - if @user.website_url.present? || display_public_email?(@user) || @user.skype.present? || @user.linkedin.present? || @user.twitter.present? || @user.mastodon.present? || @user.discord.present? @@ -52,29 +52,29 @@ %h2.gl-font-base.gl-mb-2.gl-mt-4= s_('UserProfile|Contact') - if @user.website_url.present? .gl-display-flex.gl-gap-2.gl-mb-2 - = sprite_icon('earth', css_class: 'fgray gl-mt-1 flex-shrink-0') + = sprite_icon('earth', css_class: 'gl-fill-gray-500 gl-mt-1 flex-shrink-0') = link_to @user.short_website_url, @user.full_website_url, class: 'gl-text-gray-900', target: '_blank', rel: 'me noopener noreferrer nofollow', itemprop: 'url' - if display_public_email?(@user) .gl-display-flex.gl-gap-2.gl-mb-2 - = sprite_icon('mail', css_class: 'fgray gl-mt-1 flex-shrink-0') + = sprite_icon('mail', css_class: 'gl-fill-gray-500 gl-mt-1 flex-shrink-0') = link_to @user.public_email, "mailto:#{@user.public_email}", class: 'gl-text-gray-900', itemprop: 'email' - if @user.skype.present? .gl-display-flex.gl-gap-2.gl-mb-2 - = sprite_icon('skype', css_class: 'fgray gl-mt-1 flex-shrink-0') + = sprite_icon('skype', css_class: 'gl-fill-gray-500 gl-mt-1 flex-shrink-0') = link_to @user.skype, "skype:#{@user.skype}", class: 'gl-text-gray-900', title: "Skype" - if @user.linkedin.present? .gl-display-flex.gl-gap-2.gl-mb-2 - = sprite_icon('linkedin', css_class: 'fgray gl-mt-1 flex-shrink-0') + = sprite_icon('linkedin', css_class: 'gl-fill-gray-500 gl-mt-1 flex-shrink-0') = link_to linkedin_name(@user), linkedin_url(@user), class: 'gl-text-gray-900', title: "LinkedIn", target: '_blank', rel: 'noopener noreferrer nofollow' - if @user.twitter.present? .gl-display-flex.gl-gap-2.gl-mb-2 - = sprite_icon('x', css_class: 'fgray gl-mt-1 flex-shrink-0') + = sprite_icon('x', css_class: 'gl-fill-gray-500 gl-mt-1 flex-shrink-0') = link_to @user.twitter, twitter_url(@user), class: 'gl-text-gray-900', title: _("X (formerly Twitter)"), target: '_blank', rel: 'noopener noreferrer nofollow' - if @user.mastodon.present? .gl-display-flex.gl-gap-2.gl-mb-2 - = sprite_icon('mastodon', css_class: 'fgray gl-mt-1 flex-shrink-0') + = sprite_icon('mastodon', css_class: 'gl-fill-gray-500 gl-mt-1 flex-shrink-0') = link_to @user.mastodon, mastodon_url(@user), class: 'gl-text-gray-900', title: "Mastodon", target: '_blank', rel: 'noopener noreferrer nofollow' - if @user.discord.present? .gl-display-flex.gl-gap-2.gl-mb-2 - = sprite_icon('discord', css_class: 'fgray gl-mt-1 flex-shrink-0') + = sprite_icon('discord', css_class: 'gl-fill-gray-500 gl-mt-1 flex-shrink-0') = link_to @user.discord, discord_url(@user), class: 'gl-text-gray-900', title: "Discord", target: '_blank', rel: 'noopener noreferrer nofollow' diff --git a/config/feature_flags/wip/reviewer_assign_drawer.yml b/config/feature_flags/beta/reviewer_assign_drawer.yml similarity index 75% rename from config/feature_flags/wip/reviewer_assign_drawer.yml rename to config/feature_flags/beta/reviewer_assign_drawer.yml index 1b540a6c8fe..9387b86cdba 100644 --- a/config/feature_flags/wip/reviewer_assign_drawer.yml +++ b/config/feature_flags/beta/reviewer_assign_drawer.yml @@ -2,8 +2,8 @@ name: reviewer_assign_drawer feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/448423 introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/147825 -rollout_issue_url: +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/467205 milestone: '16.11' group: group::code review -type: wip +type: beta default_enabled: false diff --git a/data/deprecations/15-9-deprecate-option-to-remove-project-immediately.yml b/data/deprecations/15-9-deprecate-option-to-remove-project-immediately.yml index edce8488011..fba5e2d2c28 100644 --- a/data/deprecations/15-9-deprecate-option-to-remove-project-immediately.yml +++ b/data/deprecations/15-9-deprecate-option-to-remove-project-immediately.yml @@ -6,7 +6,7 @@ stage: manage # (required) String value of the stage that the feature was created in. e.g., Growth issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/389557 # (required) Link to the deprecation issue in GitLab body: | # (required) Do not modify this line, instead modify the lines below. - The group and project deletion protection setting in the Admin area had an option to delete groups and projects immediately. Starting with 16.0, this option will no longer be available, and delayed group and project deletion will become the default behavior. + The group and project deletion protection setting in the **Admin** area had an option to delete groups and projects immediately. Starting with 16.0, this option will no longer be available, and delayed group and project deletion will become the default behavior. The option will no longer appear as a group setting. Self-managed users will still have the option to define the deletion delay period, and SaaS users have a non-adjustable default retention period of 7 days. Users can still immediately delete the project from the project settings, and the group from the group settings. diff --git a/doc/administration/admin_area.md b/doc/administration/admin_area.md index 31a5bea1bf8..8a8afb56b15 100644 --- a/doc/administration/admin_area.md +++ b/doc/administration/admin_area.md @@ -10,10 +10,11 @@ DETAILS: **Tier:** Free, Premium, Ultimate **Offering:** Self-managed, GitLab Dedicated -The Admin area provides a web UI to manage and configure features of GitLab -self-managed instances. If you are an administrator, to access the Admin area: +The **Admin** area provides a web UI to manage and configure features of GitLab +self-managed instances. If you are an administrator, to access the **Admin** area: -- In GitLab 16.7 and later: on the left sidebar, at the bottom, select **Admin**. +- In GitLab 17.3 and later: on the left sidebar, at the bottom, select **Admin**. +- In GitLab 16.7 and later: on the left sidebar, at the bottom, select **Admin area**. - In GitLab 16.1 and later: on the left sidebar, select **Search or go to**, then select **Admin**. - In GitLab 16.0 and earlier: on the top bar, select **Main menu > Admin**. @@ -21,7 +22,7 @@ If the GitLab instance uses Admin Mode, you must [enable Admin Mode for your ses the **Admin** button is visible. NOTE: -Only administrators on GitLab self-managed or GitLab Dedicated can access the Admin area. On GitLab.com the Admin area feature is not available. +Only administrators on GitLab self-managed or GitLab Dedicated can access the **Admin** area. On GitLab.com the **Admin** area feature is not available. ## Administering organizations @@ -32,7 +33,7 @@ On self-managed GitLab, by default this feature is not available. To make it ava On GitLab.com and GitLab Dedicated, this feature is not available. This feature is not ready for production use. -You can administer all organizations in the GitLab instance from the Admin area's Organizations page. +You can administer all organizations in the GitLab instance from the **Admin** area's Organizations page. To access the Organizations page: @@ -41,7 +42,7 @@ To access the Organizations page: ## Administering projects -You can administer all projects in the GitLab instance from the Admin area's Projects page. +You can administer all projects in the GitLab instance from the **Admin** area's Projects page. To access the Projects page: @@ -96,7 +97,7 @@ You can combine the filter options. For example, to list only public projects wi > - Filtering users [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/238183) in GitLab 17.0. -You can administer all users in the GitLab instance from the Admin area's Users page: +You can administer all users in the GitLab instance from the **Admin** area's Users page: 1. On the left sidebar, at the bottom, select **Admin**. 1. Select **Overview > Users**. @@ -168,7 +169,7 @@ DETAILS: **Tier:** Premium, Ultimate **Offering:** Self-managed, GitLab Dedicated -An administrator can export user permissions for all users in the GitLab instance from the Admin area's Users page. +An administrator can export user permissions for all users in the GitLab instance from the **Admin** area's Users page. The export lists direct membership the users have in groups and projects. The following data is included in the export: @@ -228,7 +229,7 @@ It is also possible to [limit which roles can create a subgroup within a group]( ## Administering groups -You can administer all groups in the GitLab instance from the Admin area's Groups page. +You can administer all groups in the GitLab instance from the **Admin** area's Groups page. To access the Groups page: @@ -323,7 +324,7 @@ To merge topics: ## Administering Gitaly servers -You can list all Gitaly servers in the GitLab instance from the Admin area's **Gitaly servers** +You can list all Gitaly servers in the GitLab instance from the **Admin** area's **Gitaly servers** page. For more details, see [Gitaly](gitaly/index.md). To access the **Gitaly servers** page: @@ -347,7 +348,7 @@ For each Gitaly server, the following details are listed: > - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/340859) from **Overview > Runners** to **CI/CD > Runners** in GitLab 15.8. -You can administer all runners in the GitLab instance from the Admin area's **Runners** page. See +You can administer all runners in the GitLab instance from the **Admin** area's **Runners** page. See [GitLab Runner](https://docs.gitlab.com/runner/) for more information. To access the **Runners** page: @@ -404,7 +405,7 @@ You can also edit, pause, or remove each runner. > - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/386311) from **Overview > Jobs** to **CI/CD > Jobs** in GitLab 15.8. -You can administer all jobs in the GitLab instance from the Admin area's Jobs page. +You can administer all jobs in the GitLab instance from the **Admin** area's Jobs page. To access the Jobs page: @@ -429,7 +430,7 @@ For each job, the following details are listed: ## Monitoring section -The following topics document the **Monitoring** section of the Admin area. +The following topics document the **Monitoring** section of the **Admin** area. ### System information @@ -466,7 +467,7 @@ The Sidekiq dashboard consists of the following elements: ### Logs -**Log** view has been removed from the Admin area dashboard since the logging does not work in multi-node setups and could cause confusion for administrators by displaying partial information. +**Log** view has been removed from the **Admin** area dashboard since the logging does not work in multi-node setups and could cause confusion for administrators by displaying partial information. For multi-node systems we recommend ingesting the logs into services like Elasticsearch and Splunk. diff --git a/doc/administration/auditor_users.md b/doc/administration/auditor_users.md index b9264751bd6..6827411ab11 100644 --- a/doc/administration/auditor_users.md +++ b/doc/administration/auditor_users.md @@ -12,7 +12,7 @@ DETAILS: Users with auditor access have read-only access to all groups, projects, and other resources except: -- The [Admin area](../administration/admin_area.md). +- The [**Admin** area](../administration/admin_area.md). - Project and group settings. For more information, see [Auditor user permissions and restrictions](#auditor-user-permissions-and-restrictions) @@ -49,7 +49,7 @@ You can also give users auditor access using [SAML groups](../integration/saml.m ## Auditor user permissions and restrictions -Auditor access is _not_ a read-only version of administrator access because it doesn't permit access to the Admin area. +Auditor access is _not_ a read-only version of administrator access because it doesn't permit access to the **Admin** area. For access to their own resources and resources within a group or project where they are a member, users with auditor access have the same [permissions](../user/permissions.md) as regular users. @@ -61,7 +61,7 @@ If you are signed in with auditor access, you: - Have [permissions](../user/permissions.md) based on your role to projects and groups you are a member of. For example, if you have the Developer role, you can push commits or comment on issues. - Can access the same resources using the GitLab UI or API. -- Can't view the Admin area, or perform any administration actions. +- Can't view the **Admin** area, or perform any administration actions. - Can't view job logs when [debug logging](../ci/variables/index.md#enable-debug-logging) is enabled. ## Maintain auditor users using API diff --git a/doc/administration/cicd.md b/doc/administration/cicd.md index 0753d7c62d9..694b59ef325 100644 --- a/doc/administration/cicd.md +++ b/doc/administration/cicd.md @@ -175,7 +175,7 @@ in GitLab 18.0. Runner authentication tokens should be used instead. For more in Prerequisites: -- Runner registration tokens must be [enabled](../administration/settings/continuous_integration.md#enable-runner-registrations-tokens) in the Admin area. +- Runner registration tokens must be [enabled](../administration/settings/continuous_integration.md#enable-runner-registrations-tokens) in the **Admin** area. ```ruby Gitlab::CurrentSettings.current_application_settings.runners_registration_token diff --git a/doc/administration/dedicated/configure_instance.md b/doc/administration/dedicated/configure_instance.md index 4d31447274e..e04315ee24a 100644 --- a/doc/administration/dedicated/configure_instance.md +++ b/doc/administration/dedicated/configure_instance.md @@ -13,7 +13,7 @@ DETAILS: The instructions on this page guide you through configuring your GitLab Dedicated instance, including enabling and updating the settings for [available functionality](../../subscriptions/gitlab_dedicated/index.md#available-features). -Any functionality in the GitLab application that is not controlled by the SaaS environment can be configured by using the [Admin area](../../administration/admin_area.md). +Any functionality in the GitLab application that is not controlled by the SaaS environment can be configured by using the [**Admin** area](../../administration/admin_area.md). Examples of SaaS environment settings include `gitlab.rb` configurations and access to shell, Rails console, and PostgreSQL console. These environment settings cannot be changed by tenants. diff --git a/doc/administration/geo/index.md b/doc/administration/geo/index.md index 2212ea23712..fc43359d29b 100644 --- a/doc/administration/geo/index.md +++ b/doc/administration/geo/index.md @@ -166,7 +166,7 @@ If you are only using `HTTPS` for external/internal URLs, it is not necessary to #### Internal URL HTTP requests from any Geo secondary site to the primary Geo site use the Internal URL of the primary -Geo site. If this is not explicitly defined in the primary Geo site settings in the Admin area, the +Geo site. If this is not explicitly defined in the primary Geo site settings in the **Admin** area, the public URL of the primary site is used. To update the internal URL of the primary Geo site: diff --git a/doc/administration/geo/replication/datatypes.md b/doc/administration/geo/replication/datatypes.md index 08fd480669e..0802df4241c 100644 --- a/doc/administration/geo/replication/datatypes.md +++ b/doc/administration/geo/replication/datatypes.md @@ -95,7 +95,7 @@ The Gitaly gRPC API does the communication, with three possible ways of synchron - Using regular Git clone/fetch from one Geo site to another (with special authentication). - Using repository snapshots (for when the first method fails or repository is corrupt). -- Manual trigger from the Admin area (a combination of both of the above). +- Manual trigger from the **Admin** area (a combination of both of the above). Each project can have at most 3 different repositories: diff --git a/doc/administration/geo/replication/troubleshooting/client_http.md b/doc/administration/geo/replication/troubleshooting/client_http.md index 93dbd606256..1da27de945f 100644 --- a/doc/administration/geo/replication/troubleshooting/client_http.md +++ b/doc/administration/geo/replication/troubleshooting/client_http.md @@ -74,7 +74,7 @@ To resolve this issue: If you still get this error, you can further increase the buffer size by repeating the steps above and changing the `8k` size, for example by doubling it to `16k`. -### Geo Admin area shows 'Unknown' for health status and 'Request failed with status code 401' +### Geo Admin area shows `Unknown` for health status and 'Request failed with status code 401' If using a load balancer, ensure that the load balancer's URL is set as the `external_url` in the `/etc/gitlab/gitlab.rb` of the nodes behind the load balancer. @@ -142,7 +142,7 @@ You can have only one wildcard domain in the `no_proxy` list. ### Geo Admin area returns 404 error for a secondary site Sometimes `sudo gitlab-rake gitlab:geo:check` indicates that **Rails nodes of the secondary** sites are -healthy, but a 404 Not Found error message for the **secondary** site is returned in the Geo Admin area on the web interface for +healthy, but a 404 Not Found error message for the **secondary** site is returned in the Geo **Admin** area on the web interface for the **primary** site. To resolve this issue: diff --git a/doc/administration/geo/replication/troubleshooting/common.md b/doc/administration/geo/replication/troubleshooting/common.md index 49e8af17331..9991876eed9 100644 --- a/doc/administration/geo/replication/troubleshooting/common.md +++ b/doc/administration/geo/replication/troubleshooting/common.md @@ -282,9 +282,9 @@ sudo gitlab-rake gitlab:geo:check Checking Geo ... Finished ``` - Ensure you have added the secondary site in the Admin area under **Geo > Sites** on the web interface for the **primary** site. + Ensure you have added the secondary site in the **Admin** area under **Geo > Sites** on the web interface for the **primary** site. Also ensure you entered the `gitlab_rails['geo_node_name']` - when adding the secondary site in the Admin area of the **primary** site. + when adding the secondary site in the **Admin** area of the **primary** site. - Check returns `Exception: PG::UndefinedTable: ERROR: relation "geo_nodes" does not exist`. @@ -457,7 +457,7 @@ This machine's Geo node name matches a database record ... no ``` For more information about recommended site names in the description of the Name field, see -[Geo Admin area Common Settings](../../../../administration/geo_sites.md#common-settings). +[Geo **Admin** area Common Settings](../../../../administration/geo_sites.md#common-settings). ### Check OS locale data compatibility @@ -472,7 +472,7 @@ See the [PostgreSQL wiki for more details](https://wiki.postgresql.org/wiki/Loca ## Fixing common errors -This section documents common error messages reported in the Admin area on the web interface, and how to fix them. +This section documents common error messages reported in the **Admin** area on the web interface, and how to fix them. ### Geo database configuration file is missing diff --git a/doc/administration/geo/replication/troubleshooting/replication.md b/doc/administration/geo/replication/troubleshooting/replication.md index 5bbc0e8fa4f..b1976c11b68 100644 --- a/doc/administration/geo/replication/troubleshooting/replication.md +++ b/doc/administration/geo/replication/troubleshooting/replication.md @@ -353,7 +353,7 @@ to enact the following, basic troubleshooting steps: #### Resync and reverify multiple components NOTE: -There is an [issue to implement this functionality in the Admin area UI](https://gitlab.com/gitlab-org/gitlab/-/issues/364729). +There is an [issue to implement this functionality in the **Admin** area UI](https://gitlab.com/gitlab-org/gitlab/-/issues/364729). WARNING: Commands that change data can cause damage if not run correctly or under the right conditions. Always run commands in a test environment first and have a backup instance ready to restore. diff --git a/doc/administration/geo/replication/troubleshooting/synchronization.md b/doc/administration/geo/replication/troubleshooting/synchronization.md index bade06fc6ef..a043b5dc1fb 100644 --- a/doc/administration/geo/replication/troubleshooting/synchronization.md +++ b/doc/administration/geo/replication/troubleshooting/synchronization.md @@ -57,7 +57,7 @@ You can perform a similar operation with other the Models handled by the [Geo Se NOTE: `GroupWikiRepository` is not in the previous list since verification is not implemented. -There is an [issue to implement this functionality in the Admin area UI](https://gitlab.com/gitlab-org/gitlab/-/issues/364729). +There is an [issue to implement this functionality in the **Admin** area UI](https://gitlab.com/gitlab-org/gitlab/-/issues/364729). ## Message: `Synchronization failed - Error syncing repository` diff --git a/doc/administration/geo/secondary_proxy/runners.md b/doc/administration/geo/secondary_proxy/runners.md index 557c7152728..43d319abe61 100644 --- a/doc/administration/geo/secondary_proxy/runners.md +++ b/doc/administration/geo/secondary_proxy/runners.md @@ -57,7 +57,7 @@ If you are not concerned about these issues, there is nothing to do here. You must have administrator access to use any of the following methods: -- Through the Admin area: +- Through the **Admin** area: 1. On the left sidebar, at the bottom, select **Admin**. 1. Select **Settings > Runners**. 1. Identify the runners you would like to pause. diff --git a/doc/administration/geo/setup/two_single_node_external_services.md b/doc/administration/geo/setup/two_single_node_external_services.md index 9f6f48e3e1f..6894fe5c498 100644 --- a/doc/administration/geo/setup/two_single_node_external_services.md +++ b/doc/administration/geo/setup/two_single_node_external_services.md @@ -283,7 +283,7 @@ Fast lookup is [required for Geo](../../operations/fast_ssh_key_lookup.md#fast-l NOTE: Authentication is handled by the primary site. Don't set up custom authentication for the secondary site. -Any change that requires access to the Admin area should be made in the primary site, because the +Any change that requires access to the **Admin** area should be made in the primary site, because the secondary site is a read-only copy. #### Add the secondary site diff --git a/doc/administration/geo/setup/two_single_node_sites.md b/doc/administration/geo/setup/two_single_node_sites.md index c007eca6bf8..2ec86c93063 100644 --- a/doc/administration/geo/setup/two_single_node_sites.md +++ b/doc/administration/geo/setup/two_single_node_sites.md @@ -403,7 +403,7 @@ Fast lookup is [required for Geo](../../operations/fast_ssh_key_lookup.md#fast-l NOTE: Authentication is handled by the primary site. Don't set up custom authentication for the secondary site. -Any change that requires access to the Admin area should be made in the primary site, because the +Any change that requires access to the **Admin** area should be made in the primary site, because the secondary site is a read-only copy. ### Manually replicate secret GitLab values diff --git a/doc/administration/geo_sites.md b/doc/administration/geo_sites.md index 3ab41866182..0ee3923f653 100644 --- a/doc/administration/geo_sites.md +++ b/doc/administration/geo_sites.md @@ -79,7 +79,7 @@ The internal URL defaults to external URL. To change it: 1. Edit the internal URL. 1. Select **Save changes**. -When enabled, the Admin area for Geo shows replication details for each site directly +When enabled, the **Admin** area for Geo shows replication details for each site directly from the primary site's UI, and through the Geo secondary proxy, if enabled. WARNING: diff --git a/doc/administration/get_started.md b/doc/administration/get_started.md index 36d1e2df15a..cfc96292150 100644 --- a/doc/administration/get_started.md +++ b/doc/administration/get_started.md @@ -249,7 +249,7 @@ Rate limits also improve the security of your application. ### Configure rate limits for self-managed GitLab -You can make changes to your default rate limits from the Admin area. For more information about configuration, see the [Admin area page](../security/rate_limits.md#configurable-limits). +You can make changes to your default rate limits from the **Admin** area. For more information about configuration, see the [**Admin** area page](../security/rate_limits.md#configurable-limits). - Define [issues rate limits](settings/rate_limit_on_issues_creation.md) to set a maximum number of issue creation requests per minute, per user. - Enforce [user and IP rate limits](settings/user_and_ip_rate_limits.md) for unauthenticated web requests. @@ -267,7 +267,7 @@ Rate limits also improve the security of your application. ### Configure rate limits for GitLab SaaS -You can make changes to your default rate limits from the Admin area. For more information about configuration, see the [Admin area page](../security/rate_limits.md#configurable-limits). +You can make changes to your default rate limits from the **Admin** area. For more information about configuration, see the [**Admin** area page](../security/rate_limits.md#configurable-limits). - Review the rate limit page. - Read our [API page](../api/rest/index.md) for more information about API and rate limiting. diff --git a/doc/administration/gitaly/configure_gitaly.md b/doc/administration/gitaly/configure_gitaly.md index 4451e64070e..c8e7ce4d006 100644 --- a/doc/administration/gitaly/configure_gitaly.md +++ b/doc/administration/gitaly/configure_gitaly.md @@ -531,7 +531,7 @@ reconfigure the GitLab application servers to remove the `default` entry from `g To work around the limitation: 1. Define an additional storage location on the new Gitaly service and configure the additional storage to be `default`. -1. In the [Admin area](../repository_storage_paths.md#configure-where-new-repositories-are-stored), set `default` to a weight of zero +1. In the [**Admin** area](../repository_storage_paths.md#configure-where-new-repositories-are-stored), set `default` to a weight of zero to prevent repositories being stored there. ### Disable Gitaly where not required (optional) diff --git a/doc/administration/instance_limits.md b/doc/administration/instance_limits.md index 333de105fbf..55042649092 100644 --- a/doc/administration/instance_limits.md +++ b/doc/administration/instance_limits.md @@ -665,7 +665,7 @@ The total number of custom domains per GitLab Pages website is limited to `150` The default limit for [GitLab self-managed](../subscriptions/self_managed/index.md) is `0` (unlimited). To set a limit on your self-managed instance, use the -[Admin area](pages/index.md#set-maximum-number-of-gitlab-pages-custom-domains-for-a-project). +[**Admin** area](pages/index.md#set-maximum-number-of-gitlab-pages-custom-domains-for-a-project). ### Number of extra Pages deployments when using multiple deployments @@ -1037,7 +1037,7 @@ The default maximum file size for a package that's uploaded to the [GitLab packa The [maximum file sizes on GitLab.com](../user/gitlab_com/index.md#package-registry-limits) might be different. -To set these limits for a self-managed installation, you can do it [through the Admin area](settings/continuous_integration.md#package-file-size-limits) +To set these limits for a self-managed installation, you can do it [through the **Admin** area](settings/continuous_integration.md#package-file-size-limits) or run the following in the [GitLab Rails console](operations/rails_console.md#starting-a-rails-console-session): diff --git a/doc/administration/integration/kroki.md b/doc/administration/integration/kroki.md index 210a4e09ed3..f7242ba88d6 100644 --- a/doc/administration/integration/kroki.md +++ b/doc/administration/integration/kroki.md @@ -15,7 +15,7 @@ you can create diagrams-as-code within AsciiDoc, Markdown, reStructuredText, and ## Enable Kroki in GitLab -You need to enable Kroki integration from Settings under Admin area. +You need to enable Kroki integration from Settings under **Admin** area. To do that, sign in with an administrator account and follow these steps: 1. On the left sidebar, at the bottom, select **Admin**. diff --git a/doc/administration/job_artifacts.md b/doc/administration/job_artifacts.md index 65e33c10f3c..422ef74303a 100644 --- a/doc/administration/job_artifacts.md +++ b/doc/administration/job_artifacts.md @@ -382,13 +382,13 @@ To change the default schedule on which expired artifacts are deleted: ## Set the maximum file size of the artifacts If artifacts are enabled, you can change the maximum file size of the -artifacts through the [Admin area settings](../administration/settings/continuous_integration.md#maximum-artifacts-size). +artifacts through the [**Admin** area settings](../administration/settings/continuous_integration.md#maximum-artifacts-size). ## Storage statistics You can see the total storage used for job artifacts for groups and projects in: -- The Admin area +- The **Admin** area - The [groups](../api/groups.md) and [projects](../api/projects.md) APIs ## Implementation details diff --git a/doc/administration/labels.md b/doc/administration/labels.md index f681dc1eb68..7c71affe91f 100644 --- a/doc/administration/labels.md +++ b/doc/administration/labels.md @@ -17,9 +17,9 @@ To manage labels for the GitLab instance: For more details on how to manage labels, see [Labels](../user/project/labels.md). -Labels created in the Admin area are automatically added to new projects. +Labels created in the **Admin** area are automatically added to new projects. They are not available to new groups. -Updating or adding labels in the Admin area does not modify labels in existing projects. +Updating or adding labels in the **Admin** area does not modify labels in existing projects. ![Default label set](img/admin_labels_v17_0.png) diff --git a/doc/administration/lfs/index.md b/doc/administration/lfs/index.md index 5aaa52c4cff..07d7c45a391 100644 --- a/doc/administration/lfs/index.md +++ b/doc/administration/lfs/index.md @@ -442,7 +442,7 @@ To switch Git LFS to use pure SSH protocol: You can see the total storage used for LFS objects for groups and projects in: -- The Admin area +- The **Admin** area - The [groups](../../api/groups.md) and [projects](../../api/projects.md) APIs ## Related topics diff --git a/doc/administration/maintenance_mode/index.md b/doc/administration/maintenance_mode/index.md index e6e6e9f742d..8f5dc6a5db0 100644 --- a/doc/administration/maintenance_mode/index.md +++ b/doc/administration/maintenance_mode/index.md @@ -122,7 +122,7 @@ For most JSON requests, `POST`, `PUT`, `PATCH`, and `DELETE` are blocked, and th | `POST` | Paths ending with `/compare`| Git revision routes. | | `POST` | `.git/git-upload-pack` | To allow Git pull/clone. | | `POST` | `/api/v4/internal` | [internal API routes](../../development/internal_api/index.md) | -| `POST` | `/admin/sidekiq` | To allow management of background jobs in the Admin area | +| `POST` | `/admin/sidekiq` | To allow management of background jobs in the **Admin** area | | `POST` | `/admin/geo` | To allow updating Geo Nodes in the administrator UI | | `POST` | `/api/v4/geo_replication`| To allow certain Geo-specific administrator UI actions on secondary sites | diff --git a/doc/administration/moderate_users.md b/doc/administration/moderate_users.md index c3d18c6a2b4..aafd800fe41 100644 --- a/doc/administration/moderate_users.md +++ b/doc/administration/moderate_users.md @@ -55,7 +55,7 @@ To view user sign ups pending approval: > - Ability to filter a user by state [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/238183) in GitLab 17.0. -A user sign up pending approval can be approved or rejected from the Admin area. +A user sign up pending approval can be approved or rejected from the **Admin** area. To approve or reject a user sign up: @@ -102,13 +102,13 @@ To block a user: The user receives an email notification that their account has been blocked. After this email, they no longer receive notifications. -To report abuse from other users, see [report abuse](../user/report_abuse.md). For more information on abuse reports in the Admin area, see [resolving abuse reports](../administration/review_abuse_reports.md#resolving-abuse-reports). +To report abuse from other users, see [report abuse](../user/report_abuse.md). For more information on abuse reports in the **Admin** area, see [resolving abuse reports](../administration/review_abuse_reports.md#resolving-abuse-reports). ### Unblock a user > - Ability to filter a user by state [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/238183) in GitLab 17.0. -A blocked user can be unblocked from the Admin area. To do this: +A blocked user can be unblocked from the **Admin** area. To do this: 1. On the left sidebar, at the bottom, select **Admin**. 1. Select **Overview > Users**. @@ -226,7 +226,7 @@ A maximum of 240,000 users can be deleted per day. > - Ability to filter a user by state [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/238183) in GitLab 17.0. -A deactivated user can be activated from the Admin area. +A deactivated user can be activated from the **Admin** area. To do this: @@ -260,7 +260,7 @@ A banned user: To block a user and hide their contributions, administrators can ban the user. -Users can be banned using the Admin area. To do this: +Users can be banned using the **Admin** area. To do this: 1. On the left sidebar, at the bottom, select **Admin**. 1. Select **Overview > Users**. @@ -270,7 +270,7 @@ Users can be banned using the Admin area. To do this: > - Ability to filter a user by state [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/238183) in GitLab 17.0. -A banned user can be unbanned using the Admin area. To do this: +A banned user can be unbanned using the **Admin** area. To do this: 1. On the left sidebar, at the bottom, select **Admin**. 1. Select **Overview > Users**. @@ -282,7 +282,7 @@ The user's state is set to active and they consume a ## Delete a user -Use the Admin area to delete users. +Use the **Admin** area to delete users. 1. On the left sidebar, at the bottom, select **Admin**. 1. Select **Overview > Users**. @@ -309,7 +309,7 @@ Before 15.1, additionally groups of which deleted user were the only owner among > - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/132402) in GitLab 16.5. > - Ability to filter a user by state [introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/238183) in GitLab 17.0. -You can trust and untrust users from the Admin area. +You can trust and untrust users from the **Admin** area. By default, a user is not trusted and is blocked from creating issues, notes, and snippets considered to be spam. When you trust a user, they can create issues, notes, and snippets without being blocked. diff --git a/doc/administration/monitoring/performance/grafana_configuration.md b/doc/administration/monitoring/performance/grafana_configuration.md index 1d613f5a349..89dc59642dc 100644 --- a/doc/administration/monitoring/performance/grafana_configuration.md +++ b/doc/administration/monitoring/performance/grafana_configuration.md @@ -29,12 +29,12 @@ GitLab sidebar: 1. Configure the **Grafana URL**. Enter the full URL of the Grafana instance. 1. Select **Save changes**. -GitLab displays your link in the Admin area under **Monitoring > Metrics Dashboard**. +GitLab displays your link in the **Admin** area under **Monitoring > Metrics Dashboard**. ## Required Scopes When setting up Grafana through the process above, no scope shows in the screen in -the Admin area under **Applications > GitLab Grafana**. However, the `read_user` scope is +the **Admin** area under **Applications > GitLab Grafana**. However, the `read_user` scope is required and is provided to the application automatically. Setting any scope other than `read_user` without also including `read_user` leads to this error when you try to sign in using GitLab as the OAuth provider: diff --git a/doc/administration/pages/index.md b/doc/administration/pages/index.md index d57ca09975c..29bbfe97839 100644 --- a/doc/administration/pages/index.md +++ b/doc/administration/pages/index.md @@ -660,7 +660,7 @@ To do that: 1. Select **Save changes**. NOTE: -You must enable [Access Control](#access-control) first for the setting to show in the Admin area. +You must enable [Access Control](#access-control) first for the setting to show in the **Admin** area. ### Running behind a proxy diff --git a/doc/administration/reporting/spamcheck.md b/doc/administration/reporting/spamcheck.md index 1378696499b..58515ab429a 100644 --- a/doc/administration/reporting/spamcheck.md +++ b/doc/administration/reporting/spamcheck.md @@ -67,4 +67,4 @@ Spamcheck service on its own cannot communicate directly over TLS with GitLab. However, Spamcheck can be deployed behind a reverse proxy which performs TLS termination. In such a scenario, GitLab can be made to communicate with Spamcheck over TLS by specifying `tls://` scheme for the external Spamcheck URL -instead of `grpc://` in the Admin area settings. +instead of `grpc://` in the **Admin** area settings. diff --git a/doc/administration/repository_checks.md b/doc/administration/repository_checks.md index 0ef1a5cc561..87154962f5d 100644 --- a/doc/administration/repository_checks.md +++ b/doc/administration/repository_checks.md @@ -34,7 +34,7 @@ To check a project's repository using GitLab UI: 1. In the **Repository check** section, select **Trigger repository check**. The checks run asynchronously so it may take a few minutes before the check result is visible on the -project page in the Admin area. If the checks fail, see [what to do](#what-to-do-if-a-check-failed). +project page in the **Admin** area. If the checks fail, see [what to do](#what-to-do-if-a-check-failed). ## Enable repository checks for all projects diff --git a/doc/administration/repository_storage_paths.md b/doc/administration/repository_storage_paths.md index 8cd632e9ae3..62dca60fb96 100644 --- a/doc/administration/repository_storage_paths.md +++ b/doc/administration/repository_storage_paths.md @@ -65,10 +65,10 @@ translate between the human-readable project name and the hashed storage path. Y Administrators can look up a project's hashed path from its name or ID using: -- The [Admin area](../administration/admin_area.md#administering-projects). +- The [**Admin** area](../administration/admin_area.md#administering-projects). - A Rails console. -To look up a project's hash path in the Admin area: +To look up a project's hash path in the **Admin** area: 1. On the left sidebar, at the bottom, select **Admin**. 1. Select **Overview > Projects** and select the project. diff --git a/doc/administration/review_abuse_reports.md b/doc/administration/review_abuse_reports.md index fd33346b7ba..005f34f68ef 100644 --- a/doc/administration/review_abuse_reports.md +++ b/doc/administration/review_abuse_reports.md @@ -13,7 +13,7 @@ DETAILS: View and resolve abuse reports from GitLab users. GitLab administrators can view and [resolve](#resolving-abuse-reports) abuse -reports in the Admin area. +reports in the **Admin** area. ## Receive notification of abuse reports by email diff --git a/doc/administration/review_spam_logs.md b/doc/administration/review_spam_logs.md index b4e5de13868..ce640f47455 100644 --- a/doc/administration/review_spam_logs.md +++ b/doc/administration/review_spam_logs.md @@ -12,7 +12,7 @@ DETAILS: GitLab tracks user activity and flags certain behavior for potential spam. -In the Admin area, a GitLab administrator can view and resolve spam logs. +In the **Admin** area, a GitLab administrator can view and resolve spam logs. ## Manage spam logs diff --git a/doc/administration/settings/account_and_limit_settings.md b/doc/administration/settings/account_and_limit_settings.md index 372f0af8b97..a3f7652e16d 100644 --- a/doc/administration/settings/account_and_limit_settings.md +++ b/doc/administration/settings/account_and_limit_settings.md @@ -294,7 +294,7 @@ To do this: NOTE: When this ability is disabled, GitLab administrators can still use the -[Admin area](../../administration/admin_area.md#administering-users) or the +[**Admin** area](../../administration/admin_area.md#administering-users) or the [API](../../api/users.md#user-modification) to update usernames. ## Prevent users from creating organizations diff --git a/doc/administration/settings/continuous_integration.md b/doc/administration/settings/continuous_integration.md index 8dd1516ea8b..55fad6f88a3 100644 --- a/doc/administration/settings/continuous_integration.md +++ b/doc/administration/settings/continuous_integration.md @@ -10,7 +10,7 @@ DETAILS: **Tier:** Free, Premium, Ultimate **Offering:** Self-managed -The [Admin area](index.md) has the instance settings for Auto DevOps, runners, and +The [**Admin** area](index.md) has the instance settings for Auto DevOps, runners, and job artifacts. ## Auto DevOps @@ -132,7 +132,7 @@ The value is in MB, and the default value is 100 MB per job. An administrator ca ## Default artifacts expiration The default expiration time of the [job artifacts](../../administration/job_artifacts.md) -can be set in the Admin area of your GitLab instance. The syntax of duration is +can be set in the **Admin** area of your GitLab instance. The syntax of duration is described in [`artifacts:expire_in`](../../ci/yaml/index.md#artifactsexpire_in) and the default value is `30 days`. @@ -232,7 +232,7 @@ The default value is `0` (no restriction). ## Default CI/CD configuration file -The default CI/CD configuration file and path for new projects can be set in the Admin area +The default CI/CD configuration file and path for new projects can be set in the **Admin** area of your GitLab instance (`.gitlab-ci.yml` if not set): 1. On the left sidebar, at the bottom, select **Admin**. @@ -247,7 +247,7 @@ It is also possible to specify a [custom CI/CD configuration file for a specific > - **Maximum number of active pipelines per project** setting [removed](https://gitlab.com/gitlab-org/gitlab/-/issues/368195) in GitLab 16.0. You can configure some [CI/CD limits](../../administration/instance_limits.md#cicd-limits) -from the Admin area: +from the **Admin** area: 1. On the left sidebar, at the bottom, select **Admin**. 1. Select **Settings > CI/CD**. diff --git a/doc/administration/settings/push_event_activities_limit.md b/doc/administration/settings/push_event_activities_limit.md index 26523560d41..8d89a57659e 100644 --- a/doc/administration/settings/push_event_activities_limit.md +++ b/doc/administration/settings/push_event_activities_limit.md @@ -27,7 +27,7 @@ the activity feed. To modify this setting: -- In the Admin area: +- In the **Admin** area: 1. On the left sidebar, at the bottom, select **Admin**. 1. Select **Settings > Network**. 1. Expand **Performance optimization**. diff --git a/doc/administration/settings/scim_setup.md b/doc/administration/settings/scim_setup.md index 7cfbe9cc422..a68b3fb9849 100644 --- a/doc/administration/settings/scim_setup.md +++ b/doc/administration/settings/scim_setup.md @@ -62,7 +62,7 @@ Prerequisites: To configure Okta for SCIM: 1. Sign in to Okta. -1. In the upper-right corner, select **Admin**. The button is not visible from the Admin area. +1. In the upper-right corner, select **Admin**. The button is not visible from the **Admin** area. 1. In the **Application** tab, select **Browse App Catalog**. 1. Find and select the **GitLab** application. 1. On the GitLab application overview page, select **Add Integration**. diff --git a/doc/administration/settings/security_and_compliance.md b/doc/administration/settings/security_and_compliance.md index 071e92bb079..41cafd31f03 100644 --- a/doc/administration/settings/security_and_compliance.md +++ b/doc/administration/settings/security_and_compliance.md @@ -10,7 +10,7 @@ DETAILS: **Tier:** Ultimate **Offering:** Self-managed -The settings for package metadata synchronization are located in the [Admin area](index.md). +The settings for package metadata synchronization are located in the [**Admin** area](index.md). ## Choose package registry metadata to sync diff --git a/doc/administration/settings/usage_statistics.md b/doc/administration/settings/usage_statistics.md index d65dae4b91c..f3d9b5dd983 100644 --- a/doc/administration/settings/usage_statistics.md +++ b/doc/administration/settings/usage_statistics.md @@ -95,7 +95,7 @@ In the following table, you can see: If enabled, version check informs you if a new version is available and the importance of it through a status. The status displays on the help pages (`/help`) -for all authenticated users, and on the Admin area pages. The statuses are: +for all authenticated users, and on the **Admin** area pages. The statuses are: - Green: You are running the latest version of GitLab. - Orange: An updated version of GitLab is available. @@ -155,7 +155,7 @@ To enable or disable Service Ping: ### Through the configuration file To disable Service Ping and prevent it from being configured in the future through -the Admin area. +the **Admin** area. ::Tabs @@ -248,7 +248,7 @@ To enable or disable optional data in Service Ping: ## Access the Service Ping payload -You can access the exact JSON payload sent to GitLab Inc. in the Admin area or through the API. +You can access the exact JSON payload sent to GitLab Inc. in the **Admin** area or through the API. See an [example Service Ping payload](../../development/internal_analytics/service_ping/index.md#example-service-ping-payload). ### In the UI diff --git a/doc/administration/settings/user_and_ip_rate_limits.md b/doc/administration/settings/user_and_ip_rate_limits.md index c9e116740d4..b08883fbfd7 100644 --- a/doc/administration/settings/user_and_ip_rate_limits.md +++ b/doc/administration/settings/user_and_ip_rate_limits.md @@ -120,7 +120,7 @@ attached into the response headers. | Header | Example | Description | |:----------------------|:--------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `RateLimit-Limit` | `60` | The request quota for the client **each minute**. If the rate limit period set in the Admin area is different from 1 minute, the value of this header is adjusted to approximately the nearest 60-minute period. | +| `RateLimit-Limit` | `60` | The request quota for the client **each minute**. If the rate limit period set in the **Admin** area is different from 1 minute, the value of this header is adjusted to approximately the nearest 60-minute period. | | `RateLimit-Name` | `throttle_authenticated_web` | Name of the throttle blocking the requests. | | `RateLimit-Observed` | `67` | Number of requests associated to the client in the time window. | | `RateLimit-Remaining` | `0` | Remaining quota in the time window. The result of `RateLimit-Limit` - `RateLimit-Observed`. | @@ -223,7 +223,7 @@ request continue. The log message contains an `env` field set to `track`. The `m field contains the name of throttle that was hit. It is important to set the environment variable **before** enabling -the rate limiting in the settings. The settings in the Admin area +the rate limiting in the settings. The settings in the **Admin** area take effect immediately, while setting the environment variable requires a restart of all the Puma processes. diff --git a/doc/administration/sidekiq/sidekiq_troubleshooting.md b/doc/administration/sidekiq/sidekiq_troubleshooting.md index 7319e273817..c7d5c316c7b 100644 --- a/doc/administration/sidekiq/sidekiq_troubleshooting.md +++ b/doc/administration/sidekiq/sidekiq_troubleshooting.md @@ -570,7 +570,7 @@ For more information about Sidekiq jobs, see the [Sidekiq-cron](https://github.c ## Disabling cron jobs -You can disable any Sidekiq cron jobs by visiting the [Monitoring section in the Admin area](../admin_area.md#monitoring-section). You can also perform the same action using the command line and [Rails Runner](../operations/rails_console.md#using-the-rails-runner). +You can disable any Sidekiq cron jobs by visiting the [Monitoring section in the **Admin** area](../admin_area.md#monitoring-section). You can also perform the same action using the command line and [Rails Runner](../operations/rails_console.md#using-the-rails-runner). To disable all cron jobs: diff --git a/doc/administration/snippets/index.md b/doc/administration/snippets/index.md index ae2862334f2..fe4e2447bd8 100644 --- a/doc/administration/snippets/index.md +++ b/doc/administration/snippets/index.md @@ -24,7 +24,7 @@ or the [Application settings API](../../api/settings.md). The limit **must** be in bytes. -This setting is not available in the [Admin area settings](../settings/index.md). +This setting is not available in the [**Admin** area settings](../settings/index.md). ### Use the Rails console diff --git a/doc/administration/static_objects_external_storage.md b/doc/administration/static_objects_external_storage.md index f4ff901eb1f..d2e97d6b18f 100644 --- a/doc/administration/static_objects_external_storage.md +++ b/doc/administration/static_objects_external_storage.md @@ -82,7 +82,7 @@ other CDNs or Function as a Service (FaaS) systems should work using the same pr - `ORIGIN_HOSTNAME`: the hostname of your GitLab installation. - `STORAGE_TOKEN`: any arbitrary secure token. You can get a token by running - `pwgen -cn1 64` on a UNIX machine. Save this token for the Admin area, as + `pwgen -cn1 64` on a UNIX machine. Save this token for the **Admin** area, as described in the [configuring](#configure-external-storage) section. ```javascript diff --git a/doc/administration/user_settings.md b/doc/administration/user_settings.md index 963afce4b2f..44aded3bbde 100644 --- a/doc/administration/user_settings.md +++ b/doc/administration/user_settings.md @@ -48,7 +48,7 @@ For self-compiled installations: Administrators can: -- Use the Admin area to [prevent an existing user from creating top-level groups](../administration/admin_area.md#prevent-a-user-from-creating-top-level-groups). +- Use the **Admin** area to [prevent an existing user from creating top-level groups](../administration/admin_area.md#prevent-a-user-from-creating-top-level-groups). - Use the [modify an existing user API endpoint](../api/users.md#user-modification) to change the `can_create_group` setting. ## Prevent users from changing their usernames diff --git a/doc/administration/wikis/index.md b/doc/administration/wikis/index.md index aefc3a44278..3fce9424d66 100644 --- a/doc/administration/wikis/index.md +++ b/doc/administration/wikis/index.md @@ -27,7 +27,7 @@ is edited again and the content changes. ### Wiki page content size limit configuration -This setting is not available through the [Admin area settings](../settings/index.md). +This setting is not available through the [**Admin** area settings](../settings/index.md). To configure this setting, use either the Rails console or the [Application settings API](../../api/settings.md). diff --git a/doc/api/group_import_export.md b/doc/api/group_import_export.md index 27b317abd18..eb8f6ee5539 100644 --- a/doc/api/group_import_export.md +++ b/doc/api/group_import_export.md @@ -97,7 +97,7 @@ returns either: The maximum import file size can be set by the Administrator on self-managed instances (default is `0` (unlimited)). As an administrator, you can modify the maximum import file size either: -- In the [Admin area](../administration/settings/import_and_export_settings.md). +- In the [**Admin** area](../administration/settings/import_and_export_settings.md). - By using the `max_import_size` option in the [Application settings API](settings.md#change-application-settings). For information on the maximum import file size on GitLab.com, see diff --git a/doc/api/project_import_export.md b/doc/api/project_import_export.md index 25feee1bee2..4086fe3fe42 100644 --- a/doc/api/project_import_export.md +++ b/doc/api/project_import_export.md @@ -213,7 +213,7 @@ requests.post(url, headers=headers, data=data, files=files) NOTE: The maximum import file size can be set by the Administrator. It defaults to `0` (unlimited). -As an administrator, you can modify the maximum import file size. To do so, use the `max_import_size` option in the [Application settings API](settings.md#change-application-settings) or the [Admin area](../administration/settings/account_and_limit_settings.md). +As an administrator, you can modify the maximum import file size. To do so, use the `max_import_size` option in the [Application settings API](settings.md#change-application-settings) or the [**Admin** area](../administration/settings/account_and_limit_settings.md). ## Import a file from a remote object storage diff --git a/doc/api/projects.md b/doc/api/projects.md index 547adf36122..be466215578 100644 --- a/doc/api/projects.md +++ b/doc/api/projects.md @@ -2571,7 +2571,7 @@ This endpoint: [default deletion delay](../administration/settings/visibility_and_access_controls.md#deletion-protection). WARNING: -The option to delete projects immediately from deletion protection settings in the Admin area was [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/389557) in GitLab 15.9 and removed in GitLab 16.0. +The option to delete projects immediately from deletion protection settings in the **Admin** area was [deprecated](https://gitlab.com/gitlab-org/gitlab/-/issues/389557) in GitLab 15.9 and removed in GitLab 16.0. ```plaintext DELETE /projects/:id diff --git a/doc/api/runners.md b/doc/api/runners.md index a01f8d65f03..cff5a05f669 100644 --- a/doc/api/runners.md +++ b/doc/api/runners.md @@ -841,7 +841,7 @@ POST /runners |--------------------|--------------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `token` | string | yes | [Registration token](#registration-and-authentication-tokens) | | `description` | string | no | Description of the runner | -| `info` | hash | no | Runner's metadata. You can include `name`, `version`, `revision`, `platform`, and `architecture`, but only `version`, `platform`, and `architecture` are displayed in the Admin area of the UI | +| `info` | hash | no | Runner's metadata. You can include `name`, `version`, `revision`, `platform`, and `architecture`, but only `version`, `platform`, and `architecture` are displayed in the **Admin** area of the UI | | `active` | boolean | no | Deprecated: Use `paused` instead. Specifies if the runner is allowed to receive new jobs | | `paused` | boolean | no | Specifies if the runner should ignore new jobs | | `locked` | boolean | no | Specifies if the runner should be locked for the current project | diff --git a/doc/api/settings.md b/doc/api/settings.md index ec474cccb94..65b001bbe2d 100644 --- a/doc/api/settings.md +++ b/doc/api/settings.md @@ -368,8 +368,8 @@ listed in the descriptions of the relevant settings. | Attribute | Type | Required | Description | |------------------------------------------|------------------|:------------------------------------:|-------------| | `admin_mode` | boolean | no | Require administrators to enable Admin Mode by re-authenticating for administrative tasks. | -| `admin_notification_email` | string | no | Deprecated: Use `abuse_notification_email` instead. If set, [abuse reports](../administration/review_abuse_reports.md) are sent to this address. Abuse reports are always available in the Admin area. | -| `abuse_notification_email` | string | no | If set, [abuse reports](../administration/review_abuse_reports.md) are sent to this address. Abuse reports are always available in the Admin area. | +| `admin_notification_email` | string | no | Deprecated: Use `abuse_notification_email` instead. If set, [abuse reports](../administration/review_abuse_reports.md) are sent to this address. Abuse reports are always available in the **Admin** area. | +| `abuse_notification_email` | string | no | If set, [abuse reports](../administration/review_abuse_reports.md) are sent to this address. Abuse reports are always available in the **Admin** area. | | `notify_on_unknown_sign_in` | boolean | no | Enable sending notification if sign in from unknown IP address happens. | | `after_sign_out_path` | string | no | Where to redirect users after logout. | | `email_restrictions_enabled` | boolean | no | Enable restriction for sign-up by email. | @@ -394,7 +394,7 @@ listed in the descriptions of the relevant settings. | `auto_devops_domain` | string | no | Specify a domain to use by default for every project's Auto Review Apps and Auto Deploy stages. | | `auto_devops_enabled` | boolean | no | Enable Auto DevOps for projects by default. It automatically builds, tests, and deploys applications based on a predefined CI/CD configuration. | | `automatic_purchased_storage_allocation` | boolean | no | Enabling this permits automatic allocation of purchased storage in a namespace. Relevant only to EE distributions. | -| `bulk_import_enabled` | boolean | no | Enable migrating GitLab groups by direct transfer. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/383268) in GitLab 15.8. Setting also [available](../administration/settings/import_and_export_settings.md#enable-migration-of-groups-and-projects-by-direct-transfer) in the Admin area. | +| `bulk_import_enabled` | boolean | no | Enable migrating GitLab groups by direct transfer. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/383268) in GitLab 15.8. Setting also [available](../administration/settings/import_and_export_settings.md#enable-migration-of-groups-and-projects-by-direct-transfer) in the **Admin** area. | | `bulk_import_max_download_file_size` | integer | no | Maximum download file size when importing from source GitLab instances by direct transfer. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/384976) in GitLab 16.3. | | `can_create_group` | boolean | no | Indicates whether users can create top-level groups. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/367754) in GitLab 15.5. Defaults to `true`. | | `check_namespace_plan` | boolean | no | Enabling this makes only licensed EE features available to projects if the project namespace's plan includes the feature or if the project is public. Premium and Ultimate only. | diff --git a/doc/api/templates/dockerfiles.md b/doc/api/templates/dockerfiles.md index f6c70728822..8c83190528c 100644 --- a/doc/api/templates/dockerfiles.md +++ b/doc/api/templates/dockerfiles.md @@ -23,7 +23,7 @@ DETAILS: In [GitLab Premium and Ultimate](https://about.gitlab.com/pricing/) tiers, GitLab instance administrators can override templates in the -[Admin area](../../administration/settings/instance_template_repository.md). +[**Admin** area](../../administration/settings/instance_template_repository.md). ## List Dockerfile templates diff --git a/doc/ci/components/index.md b/doc/ci/components/index.md index 21a4d5e330d..53a1c73cab4 100644 --- a/doc/ci/components/index.md +++ b/doc/ci/components/index.md @@ -555,7 +555,7 @@ To access the CI/CD Catalog and view the published components that are available 1. Select **CI/CD Catalog**. Alternatively, if you are already in the [pipeline editor](../pipeline_editor/index.md) -in your project, you can select **Browse CI/CD Catalog**. +in your project, you can select **CI/CD Catalog**. Visibility of components in the CI/CD catalog follows the component source project's [visibility setting](../../user/public_access.md). Components with source projects set to: diff --git a/doc/ci/pipelines/compute_minutes.md b/doc/ci/pipelines/compute_minutes.md index 9f5a9196323..548bf45ba08 100644 --- a/doc/ci/pipelines/compute_minutes.md +++ b/doc/ci/pipelines/compute_minutes.md @@ -406,12 +406,12 @@ An administrator can reset the compute usage for a namespace for the current mon ### Reset usage for a personal namespace -1. Find the [user in the Admin area](../../administration/admin_area.md#administering-users). +1. Find the [user in the **Admin** area](../../administration/admin_area.md#administering-users). 1. Select **Edit**. 1. In **Limits**, select **Reset compute usage**. ### Reset usage for a group namespace -1. Find the [group in the Admin area](../../administration/admin_area.md#administering-groups). +1. Find the [group in the **Admin** area](../../administration/admin_area.md#administering-groups). 1. Select **Edit**. 1. In **Permissions and group features**, select **Reset compute usage**. diff --git a/doc/ci/runners/new_creation_workflow.md b/doc/ci/runners/new_creation_workflow.md index 27aa76cad6f..f21e2ff0eb1 100644 --- a/doc/ci/runners/new_creation_workflow.md +++ b/doc/ci/runners/new_creation_workflow.md @@ -78,7 +78,7 @@ To continue using registration tokens after GitLab 17.0: - On GitLab.com, you can manually [enable the legacy runner registration process](runners_scope.md#enable-use-of-runner-registration-tokens-in-projects-and-groups) in the top-level group settings until GitLab 18.0. - On GitLab self-managed, you can manually [enable the legacy runner registration process](../../administration/settings/continuous_integration.md#enable-runner-registrations-tokens) - in the Admin area settings until GitLab 18.0. + in the **Admin** area settings until GitLab 18.0. ## Impact on existing runners diff --git a/doc/ci/runners/runner_fleet_dashboard_groups.md b/doc/ci/runners/runner_fleet_dashboard_groups.md index 26e69c08359..4f2d2a73552 100644 --- a/doc/ci/runners/runner_fleet_dashboard_groups.md +++ b/doc/ci/runners/runner_fleet_dashboard_groups.md @@ -24,7 +24,7 @@ The following metrics are available in the runner fleet dashboard: | Metric | Description | |-------------------------------|-------------| -| Online | Number of online runners. In the Admin area, this metric displays the number of runners for the entire instance. In a group, this metric displays the number of runners for the group and its subgroups. | +| Online | Number of online runners. In the **Admin** area, this metric displays the number of runners for the entire instance. In a group, this metric displays the number of runners for the group and its subgroups. | | Offline | Number of offline runners. | | Active runners | Number of active runners. | | Runner usage (previous month) | Number of compute minutes used by each project on group runners. Includes the option to export as CSV for cost analysis. | diff --git a/doc/ci/runners/runners_scope.md b/doc/ci/runners/runners_scope.md index b8ecaaf3000..8c397cccbd5 100644 --- a/doc/ci/runners/runners_scope.md +++ b/doc/ci/runners/runners_scope.md @@ -81,7 +81,7 @@ should be used instead. For more information, see [Migrating to the new runner r Prerequisites: -- Runner registration tokens must be [enabled](../../administration/settings/continuous_integration.md#enable-runner-registrations-tokens) in the Admin area. +- Runner registration tokens must be [enabled](../../administration/settings/continuous_integration.md#enable-runner-registrations-tokens) in the **Admin** area. - You must be an administrator. To create an instance runner: @@ -689,7 +689,7 @@ you can enable runner registration tokens for projects and groups. This setting Prerequisites: -- Runner registration tokens must be [enabled](../../administration/settings/continuous_integration.md#enable-runner-registrations-tokens) in the Admin area. +- Runner registration tokens must be [enabled](../../administration/settings/continuous_integration.md#enable-runner-registrations-tokens) in the **Admin** area. 1. On the left sidebar, select **Search or go to** and find your group. 1. Select **Settings > CI/CD**. diff --git a/doc/ci/variables/index.md b/doc/ci/variables/index.md index 0fcef7ebb35..abdc445933d 100644 --- a/doc/ci/variables/index.md +++ b/doc/ci/variables/index.md @@ -292,7 +292,7 @@ Prerequisites: To mask a variable: -1. For the group, project, or in the Admin area, select **Settings > CI/CD**. +1. For the group, project, or in the **Admin** area, select **Settings > CI/CD**. 1. Expand **Variables**. 1. Next to the variable you want to protect, select **Edit**. 1. Select the **Mask variable** checkbox. diff --git a/doc/development/application_limits.md b/doc/development/application_limits.md index b90076718b8..c90b7095616 100644 --- a/doc/development/application_limits.md +++ b/doc/development/application_limits.md @@ -170,7 +170,7 @@ The process for adding a new throttle is loosely: 1. Update the JSON schema validator for the [rate_limits column](https://gitlab.com/gitlab-org/gitlab/-/blob/63b37287ae028842fcdcf56d311e6bb0c7e09e79/app/validators/json_schemas/application_setting_rate_limits.json). 1. Extend `Gitlab::RackAttack` and `Gitlab::RackAttack::Request` to configure the new rate limit, and apply it to the desired requests. -1. Add the new settings to the Admin area form in `app/views/admin/application_settings/_ip_limits.html.haml`. +1. Add the new settings to the **Admin** area form in `app/views/admin/application_settings/_ip_limits.html.haml`. 1. Document the new settings in [User and IP rate limits](../administration/settings/user_and_ip_rate_limits.md) and [Application settings API](../api/settings.md). 1. Configure the rate limit for GitLab.com and document it in [GitLab.com-specific rate limits](../user/gitlab_com/index.md#gitlabcom-specific-rate-limits). diff --git a/doc/development/documentation/styleguide/availability_details.md b/doc/development/documentation/styleguide/availability_details.md index 748797ed68b..0dc958f2d4e 100644 --- a/doc/development/documentation/styleguide/availability_details.md +++ b/doc/development/documentation/styleguide/availability_details.md @@ -154,7 +154,7 @@ Instance administrator documentation often includes sections that mention: - Changing the `gitlab.rb` or `gitlab.yml` files. - Accessing the rails console or running Rake tasks. -- Doing things in the Admin area. +- Doing things in the **Admin** area. These pages should also mention if the tasks can only be accomplished by an instance administrator. diff --git a/doc/development/documentation/styleguide/index.md b/doc/development/documentation/styleguide/index.md index c71372274da..fd50d0e7427 100644 --- a/doc/development/documentation/styleguide/index.md +++ b/doc/development/documentation/styleguide/index.md @@ -1038,7 +1038,7 @@ To create a group: 1. On the left sidebar, at the top, select **Create new** (**{plus}**) and **New group**. ``` -To open the Admin area: +To open the **Admin** area: ```markdown 1. On the left sidebar, at the bottom, select **Admin**. diff --git a/doc/development/documentation/styleguide/word_list.md b/doc/development/documentation/styleguide/word_list.md index 3e966d37d07..27a54de0ffe 100644 --- a/doc/development/documentation/styleguide/word_list.md +++ b/doc/development/documentation/styleguide/word_list.md @@ -216,7 +216,7 @@ Do not use **and so on**. Instead, be more specific. For more information, see t ## area -Use [**section**](#section) instead of **area**. The only exception is [the Admin area](#admin-area). +Use [**section**](#section) instead of **area**. The only exception is [the **Admin** area](#admin-area). ## as diff --git a/doc/development/geo.md b/doc/development/geo.md index bafb11f7d71..dc935fb63b0 100644 --- a/doc/development/geo.md +++ b/doc/development/geo.md @@ -110,7 +110,7 @@ projects that need updating. Those projects can be: timestamp that is more recent than the `last_repository_successful_sync_at` timestamp in the `Geo::ProjectRegistry` model. - Manual: The administrator can manually flag a repository to resync in the - [Geo Admin area](../administration/geo_sites.md). + [Geo **Admin** area](../administration/geo_sites.md). When we fail to fetch a repository on the secondary `RETRIES_BEFORE_REDOWNLOAD` times, Geo does a so-called _re-download_. It will do a clean clone @@ -465,7 +465,7 @@ basically hashes all Git refs together and stores that hash in the The **secondary** site does the same to calculate the hash of its clone, and compares the hash with the value the **primary** site calculated. If there is a mismatch, Geo will mark this as a mismatch -and the administrator can see this in the [Geo Admin area](../administration/geo_sites.md). +and the administrator can see this in the [Geo **Admin** area](../administration/geo_sites.md). ## Geo proxying diff --git a/doc/development/internal_analytics/metrics/metrics_dictionary.md b/doc/development/internal_analytics/metrics/metrics_dictionary.md index 71eb8bc6ffc..11495c7a523 100644 --- a/doc/development/internal_analytics/metrics/metrics_dictionary.md +++ b/doc/development/internal_analytics/metrics/metrics_dictionary.md @@ -102,7 +102,7 @@ A metric's time frame is calculated based on the `time_frame` field and the `dat We use the following categories to classify a metric: - `operational`: Required data for operational purposes. -- `optional`: Default value for a metric. Data that is optional to collect. This can be [enabled or disabled](../../../administration/settings/usage_statistics.md#enable-or-disable-service-ping) in the Admin area. +- `optional`: Default value for a metric. Data that is optional to collect. This can be [enabled or disabled](../../../administration/settings/usage_statistics.md#enable-or-disable-service-ping) in the **Admin** area. - `subscription`: Data related to licensing. - `standard`: Standard set of identifiers that are included when collecting data. diff --git a/doc/development/internal_analytics/service_ping/troubleshooting.md b/doc/development/internal_analytics/service_ping/troubleshooting.md index 05a847c9c80..a5a20a598bf 100644 --- a/doc/development/internal_analytics/service_ping/troubleshooting.md +++ b/doc/development/internal_analytics/service_ping/troubleshooting.md @@ -104,7 +104,7 @@ Gitlab::Usage::ServicePingReport.for(output: :all_metrics_values, cached: true) Use the following method in the [rails console](../../../administration/operations/rails_console.md#starting-a-rails-console-session). -This also refreshes the cached Service Ping displayed in the Admin area. +This also refreshes the cached Service Ping displayed in the **Admin** area. ```ruby Gitlab::Usage::ServicePingReport.for(output: :all_metrics_values) diff --git a/doc/development/internal_api/index.md b/doc/development/internal_api/index.md index ef05efd12cc..44374404e71 100644 --- a/doc/development/internal_api/index.md +++ b/doc/development/internal_api/index.md @@ -1112,7 +1112,7 @@ Example response: ## Storage limit exclusions The namespace storage limit exclusion endpoints manage storage limit exclusions on top-level namespaces on GitLab.com. -These endpoints can only be consumed in the Admin area of GitLab.com. +These endpoints can only be consumed in the **Admin** area of GitLab.com. ### Retrieve storage limit exclusions @@ -1208,7 +1208,7 @@ Example response: ### Known consumers -- GitLab.com Admin area +- GitLab.com **Admin** area ## Compute quota provisioning @@ -1603,7 +1603,7 @@ Example response: Returns a `201` status code if successful. NOTE: -After you create a group SCIM identity for a user, you can see that SCIM identity in the Admin area. +After you create a group SCIM identity for a user, you can see that SCIM identity in the **Admin** area. ### Update a single SCIM provisioned user diff --git a/doc/development/permissions/predefined_roles.md b/doc/development/permissions/predefined_roles.md index 2ca2e23041f..b96ed64057f 100644 --- a/doc/development/permissions/predefined_roles.md +++ b/doc/development/permissions/predefined_roles.md @@ -17,7 +17,7 @@ Each user can be one of the following types: - [Internal users](../internal_users.md) - system created. - [Auditor](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/app/policies/ee/base_policy.rb#L9): - No access to projects or groups settings menu. - - No access to Admin area. + - No access to **Admin** area. - Read-only access to everything else. - [Administrator](https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/policies/base_policy.rb#L6) - read-write access. diff --git a/doc/development/spam_protection_and_captcha/exploratory_testing.md b/doc/development/spam_protection_and_captcha/exploratory_testing.md index 3711f3f3641..63315d76239 100644 --- a/doc/development/spam_protection_and_captcha/exploratory_testing.md +++ b/doc/development/spam_protection_and_captcha/exploratory_testing.md @@ -273,7 +273,7 @@ GraphQL response: ### Scenario: Akismet enabled, CAPTCHA disabled -For this scenario, ensure you clear **Enable reCAPTCHA** in the Admin area settings as described above. +For this scenario, ensure you clear **Enable reCAPTCHA** in the **Admin** area settings as described above. If CAPTCHA is not enabled, any request flagged as potential spam fails with no chance to resubmit, even if it could otherwise be resubmitted if CAPTCHA were enabled and successfully solved. diff --git a/doc/development/spam_protection_and_captcha/model_and_services.md b/doc/development/spam_protection_and_captcha/model_and_services.md index acebad56d80..e8944a8dc39 100644 --- a/doc/development/spam_protection_and_captcha/model_and_services.md +++ b/doc/development/spam_protection_and_captcha/model_and_services.md @@ -57,7 +57,7 @@ To do this: The `SpammableActions::AkismetMarkAsSpamAction` module adds support for a `#mark_as_spam` action to a controller. This controller allows administrators to manage spam for the associated -`Spammable` model in the [**Spam log** section](../../integration/akismet.md) of the Admin area page. +`Spammable` model in the [**Spam log** section](../../integration/akismet.md) of the **Admin** area. 1. Include the `SpammableActions::AkismetMarkAsSpamAction` module in the controller. diff --git a/doc/development/testing_guide/end_to_end/rspec_metadata_tests.md b/doc/development/testing_guide/end_to_end/rspec_metadata_tests.md index e17103eaf46..7007d09f4ec 100644 --- a/doc/development/testing_guide/end_to_end/rspec_metadata_tests.md +++ b/doc/development/testing_guide/end_to_end/rspec_metadata_tests.md @@ -25,7 +25,7 @@ This is a partial list of the [RSpec metadata](https://rspec.info/features/3-12/ | `:instance_saml` | The test requires a GitLab instance that has SAML SSO enabled for the instance. Interacts with an external SAML identity provider. Paired with the `:orchestrated` tag. | | `:integrations` | This aims to test the available [integrations](../../../user/project/integrations/index.md#available-integrations). The test requires Docker to be installed in the run context. It will provision the containers and can be run against a local instance or using the `gitlab-qa` scenario `Test::Integration::Integrations`. | | `:issue`, `:issue_${num}` | Optional links to issues which might be related to the spec. Helps keep track of related issues and can also be used by tools that create test reports. Currently added automatically to `Allure` test report. Multiple tags can be used by adding an optional numeric suffix like `issue_1`, `issue_2` etc. | -| `:service_ping_disabled` | The test interacts with the GitLab configuration service ping at the instance level to turn Admin area setting service ping checkbox on or off. This tag will have the test run only in the `service_ping_disabled` job and must be paired with the `:orchestrated` and `:requires_admin` tags. | +| `:service_ping_disabled` | The test interacts with the GitLab configuration service ping at the instance level to turn **Admin** area setting service ping checkbox on or off. This tag will have the test run only in the `service_ping_disabled` job and must be paired with the `:orchestrated` and `:requires_admin` tags. | | `:jira` | The test requires a Jira Server. [GitLab-QA](https://gitlab.com/gitlab-org/gitlab-qa) provisions the Jira Server in a Docker container when the `Test::Integration::Jira` test scenario is run. | | `:kubernetes` | The test includes a GitLab instance that is configured to be run behind an SSH tunnel, allowing a TLS-accessible GitLab. This test also includes provisioning of at least one Kubernetes cluster to test against. _This tag is often be paired with `:orchestrated`._ | | `:ldap_no_server` | The test requires a GitLab instance to be configured to use LDAP. To be used with the `:orchestrated` tag. It does not spin up an LDAP server at orchestration time. Instead, it creates the LDAP server at runtime. | diff --git a/doc/install/azure/index.md b/doc/install/azure/index.md index a8eaae31ddb..7eea9ec9993 100644 --- a/doc/install/azure/index.md +++ b/doc/install/azure/index.md @@ -291,7 +291,7 @@ To update GitLab to the latest version: before anything else. ``` -Refresh your GitLab instance in the browser and go to the Admin area. You should now have an +Refresh your GitLab instance in the browser and go to the **Admin** area. You should now have an up-to-date GitLab instance. ## Next steps and further configuration diff --git a/doc/install/docker_troubleshooting.md b/doc/install/docker_troubleshooting.md index b07a05d4d15..978e3df9721 100644 --- a/doc/install/docker_troubleshooting.md +++ b/doc/install/docker_troubleshooting.md @@ -125,7 +125,7 @@ writing value to /dev/shm/gitlab/sidekiq/histogram_sidekiq_0-0.db failed with un writing value to /dev/shm/gitlab/sidekiq/histogram_sidekiq_0-0.db failed with unmapped file ``` -Other than disabling the Prometheus Metrics from the Admin area, the recommended +Other than disabling the Prometheus Metrics from the **Admin** area, the recommended solution to fix this problem is to [install](docker.md#pre-configure-docker-container) with shared memory set to at least 256 MB. If using `docker run`, this can be done by passing the flag `--shm-size 256m`. If using a `docker-compose.yml` file, the `shm_size` key can be used for this diff --git a/doc/integration/advanced_search/elasticsearch.md b/doc/integration/advanced_search/elasticsearch.md index f8b14b9dd4e..1289986b8a3 100644 --- a/doc/integration/advanced_search/elasticsearch.md +++ b/doc/integration/advanced_search/elasticsearch.md @@ -64,7 +64,7 @@ For a single node search cluster, the functional cluster health status is always The search index updates after you: - Add data to the database or repository. -- [Enable advanced search](#enable-advanced-search) in the Admin area. +- [Enable advanced search](#enable-advanced-search) in the **Admin** area. NOTE: Before you use a new Elasticsearch cluster in production, see the @@ -978,7 +978,7 @@ due to large volumes of data being indexed, follow these steps: ``` This enqueues a Sidekiq job for each project that needs to be indexed. - You can view the jobs in the Admin area under **Monitoring > Background jobs > Queues Tab** + You can view the jobs in the **Admin** area under **Monitoring > Background jobs > Queues Tab** and select `elastic_commit_indexer`, or you can query indexing status using a Rake task: ```shell diff --git a/doc/integration/advanced_search/elasticsearch_troubleshooting.md b/doc/integration/advanced_search/elasticsearch_troubleshooting.md index b3e276d7730..8bad01bfbd9 100644 --- a/doc/integration/advanced_search/elasticsearch_troubleshooting.md +++ b/doc/integration/advanced_search/elasticsearch_troubleshooting.md @@ -108,7 +108,7 @@ There are a couple of ways to achieve that: This is always correctly identifying whether the current project/namespace being searched is using Elasticsearch. -- From the Admin area under **Settings > Search** check that the +- From the **Admin** area under **Settings > Search** check that the advanced search settings are checked. Those same settings there can be obtained from the Rails console if necessary: diff --git a/doc/integration/akismet.md b/doc/integration/akismet.md index 2eb33d48bca..4a9ce85d840 100644 --- a/doc/integration/akismet.md +++ b/doc/integration/akismet.md @@ -16,7 +16,7 @@ Akismet for review, and instance administrators can [mark snippets as spam](../user/snippets.md#mark-snippet-as-spam). Detected spam is rejected, and an entry is added in the **Spam log** section of the -Admin area. +**Admin** area. Privacy note: GitLab submits the user's IP and user agent to Akismet. diff --git a/doc/integration/bitbucket.md b/doc/integration/bitbucket.md index 1046a774f99..720ff23d460 100644 --- a/doc/integration/bitbucket.md +++ b/doc/integration/bitbucket.md @@ -129,4 +129,4 @@ After the above configuration is set up, you can use Bitbucket to sign in to GitLab and [start importing your projects](../user/project/import/bitbucket.md). If you want to import projects from Bitbucket, but don't want to enable signing in, -you can [disable Sign-Ins in the Admin area](omniauth.md#enable-or-disable-sign-in-with-an-omniauth-provider-without-disabling-import-sources). +you can [disable Sign-Ins in the **Admin** area](omniauth.md#enable-or-disable-sign-in-with-an-omniauth-provider-without-disabling-import-sources). diff --git a/doc/integration/sourcegraph.md b/doc/integration/sourcegraph.md index e14648407e7..9b5cd4dc7a9 100644 --- a/doc/integration/sourcegraph.md +++ b/doc/integration/sourcegraph.md @@ -51,8 +51,8 @@ Prerequisites: In Sourcegraph: -1. Go to the site Admin area. -1. Optional. [Configure your GitLab external service](https://docs.sourcegraph.com/admin/external_service/gitlab). +1. Go to the **Site admin** area. +1. Optional. [Configure your GitLab external service](https://sourcegraph.com/docs/admin/code_hosts/gitlab). If your GitLab repositories are already searchable in Sourcegraph, you can skip this step. 1. Confirm that you can search your repositories from GitLab in your Sourcegraph instance by running a test query. 1. Add your GitLab instance URL to the [`corsOrigin` setting](https://docs.sourcegraph.com/admin/config/site_config#corsOrigin) diff --git a/doc/raketasks/user_management.md b/doc/raketasks/user_management.md index 838c8098994..fc10bf2441a 100644 --- a/doc/raketasks/user_management.md +++ b/doc/raketasks/user_management.md @@ -10,7 +10,7 @@ DETAILS: **Tier:** Free, Premium, Ultimate **Offering:** Self-managed -GitLab provides Rake tasks for managing users. Administrators can also use the Admin area to +GitLab provides Rake tasks for managing users. Administrators can also use the **Admin** area to [manage users](../administration/admin_area.md#administering-users). ## Add user as a developer to all projects diff --git a/doc/security/hardening_nist_800_53.md b/doc/security/hardening_nist_800_53.md index 10bf64d5980..143ed152ee6 100644 --- a/doc/security/hardening_nist_800_53.md +++ b/doc/security/hardening_nist_800_53.md @@ -124,7 +124,7 @@ for customers that have unique permission requirements. GitLab also supports the following user types for unique use cases: -- [Auditor Users](../administration/auditor_users.md) - The auditor role provides read-only access to all groups, projects and other resources except for the Admin area and project/group settings. You can use the auditor role when engaging with third-party auditors that require access to certain projects to validate processes. +- [Auditor Users](../administration/auditor_users.md) - The auditor role provides read-only access to all groups, projects and other resources except for the **Admin** area and project/group settings. You can use the auditor role when engaging with third-party auditors that require access to certain projects to validate processes. - [External Users](../administration/external_users.md) - External users can be set to provide limited access for users that @@ -140,7 +140,7 @@ GitLab also supports the following user types for unique use cases: Service accounts may be added to accommodate automated tasks. Service accounts do not use a seat under the license. -**Admin area** - In the Admin area, administrators can [export permissions](../administration/admin_area.md#user-permission-export), +**Admin** area - In the **Admin** area, administrators can [export permissions](../administration/admin_area.md#user-permission-export), [review user identities](../administration/admin_area.md#user-identities), [administer groups](../administration/admin_area.md#administering-groups), and much more. Functions that can be used to meet FedRAMP / NIST 800-53 requirements: @@ -161,7 +161,7 @@ requirements: FedRAMP requires organizations to monitor accounts for atypical use (AC-2(12)). GitLab empowers users to flag abuse in abuse reports, where administrators can remove access pending investigation. Spam - logs are consolidated in the **Spam logs** section of the Admin area. + logs are consolidated in the **Spam logs** section of the **Admin** area. Administrators can remove, block, or trust users flagged in that area. @@ -183,7 +183,7 @@ requirements: with the GitLab UI, which organizations interested in enforcing longer passwords can use. Additionally, self-managed customers may [configure complexity requirements](../administration/settings/sign_up_restrictions.md#password-complexity-requirements) - through the Admin area UI. + through the **Admin** area UI. - [Default session durations](../administration/settings/account_and_limit_settings.md#customize-the-default-session-duration) - FedRAMP establishes that users that have been inactive for a set @@ -194,10 +194,10 @@ requirements: - [Provisioning New Users](../user/profile/account/create_accounts.md) - Administrators can create new users for their GitLab account with the - Admin area UI. In compliance with IA-5, GitLab requires new users to + **Admin** area UI. In compliance with IA-5, GitLab requires new users to change their passwords on first login. -- Deprovisioning Users - Administrators are able to [remove users with the Admin area UI](../user/profile/account/delete_account.md#delete-users-and-user-contributions). +- Deprovisioning Users - Administrators are able to [remove users with the **Admin** area UI](../user/profile/account/delete_account.md#delete-users-and-user-contributions). An alternative to deleting users is to [block a user](../administration/moderate_users.md#block-a-user) and remove all access. Blocking a user maintains their data in repositories while removing all access. Blocked users do not impact diff --git a/doc/security/rate_limits.md b/doc/security/rate_limits.md index 77d307fe359..01f28ce93ce 100644 --- a/doc/security/rate_limits.md +++ b/doc/security/rate_limits.md @@ -35,7 +35,7 @@ The rate limits for API requests do not affect requests made by the frontend, be ## Configurable limits -You can set these rate limits in the Admin area of your instance: +You can set these rate limits in the **Admin** area of your instance: - [Import/Export rate limits](../administration/settings/import_export_rate_limits.md) - [Issue rate limits](../administration/settings/rate_limit_on_issues_creation.md) diff --git a/doc/security/ssh_keys_restrictions.md b/doc/security/ssh_keys_restrictions.md index d339b6f075a..5ad1d4dcb22 100644 --- a/doc/security/ssh_keys_restrictions.md +++ b/doc/security/ssh_keys_restrictions.md @@ -27,7 +27,7 @@ the minimum key length for each technology: 1. Select **Settings > General** . 1. Expand **Visibility and access controls**: - ![SSH keys restriction Admin area settings](img/ssh_keys_restrictions_settings.png) + ![SSH keys restriction **Admin** area settings](img/ssh_keys_restrictions_settings.png) If a restriction is imposed on any key type, users cannot upload new SSH keys that don't meet the requirement. Any existing keys that don't meet it are disabled but not removed and users cannot diff --git a/doc/security/unlock_user.md b/doc/security/unlock_user.md index 9f8c58be808..c90b75dca38 100644 --- a/doc/security/unlock_user.md +++ b/doc/security/unlock_user.md @@ -17,7 +17,7 @@ DETAILS: By default, users are locked after 10 failed sign-in attempts. These users remain locked: - For 10 minutes, after which time they are automatically unlocked. -- Until an administrator unlocks them from the [Admin area](../administration/admin_area.md) or the command line in under 10 minutes. +- Until an administrator unlocks them from the [**Admin** area](../administration/admin_area.md) or the command line in under 10 minutes. In GitLab 16.5 and later, administrators can [use the API](../api/settings.md#list-of-settings-that-can-be-accessed-via-api-calls) to configure: diff --git a/doc/subscriptions/self_managed/index.md b/doc/subscriptions/self_managed/index.md index 579c4f4c8b8..aadbd004994 100644 --- a/doc/subscriptions/self_managed/index.md +++ b/doc/subscriptions/self_managed/index.md @@ -63,7 +63,7 @@ A user is not counted as a billable user if: - [Bot users for groups](../../user/group/settings/group_access_tokens.md#bot-users-for-groups). - Other [internal users](../../development/internal_users.md#internal-users). -The amount of **Billable users** is reported once a day in the Admin area. +The amount of **Billable users** is reported once a day in the **Admin** area. ### Maximum users @@ -466,7 +466,7 @@ For example, if a license has a start date of January 1, 2024 and an end date of ## Activate a license file or key -If you have a license file or key, you can activate it [in the Admin area](../../administration/license_file.md#activate-gitlab-ee-with-a-license-file-or-key). +If you have a license file or key, you can activate it [in the **Admin** area](../../administration/license_file.md#activate-gitlab-ee-with-a-license-file-or-key). ## Contact Support diff --git a/doc/topics/autodevops/index.md b/doc/topics/autodevops/index.md index 11cb265adc5..e16d2bcffe8 100644 --- a/doc/topics/autodevops/index.md +++ b/doc/topics/autodevops/index.md @@ -77,7 +77,7 @@ Auto DevOps runs pipelines automatically only if a [`Dockerfile` or matching bui Depending on your instance type, you can enable or disable Auto DevOps at the following levels: -| Instance type | [Project](#per-project) | [Group](#per-group) | [Instance](#per-instance) (Admin area) | +| Instance type | [Project](#per-project) | [Group](#per-group) | [Instance](#per-instance) (**Admin** area) | |---------------------|------------------------|------------------------|------------------------| | GitLab SaaS | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No | | GitLab self-managed | **{check-circle}** Yes | **{check-circle}** Yes | **{check-circle}** Yes | diff --git a/doc/topics/autodevops/prepare_deployment.md b/doc/topics/autodevops/prepare_deployment.md index 44ad68821ed..459f8d5d694 100644 --- a/doc/topics/autodevops/prepare_deployment.md +++ b/doc/topics/autodevops/prepare_deployment.md @@ -45,7 +45,7 @@ To define the base domain, either: - In the project, group, or instance: go to your cluster settings and add it there. - In the project or group: add it as an environment variable: `KUBE_INGRESS_BASE_DOMAIN`. -- In the instance: go to the Admin area, then **Settings > CI/CD > Continuous Integration and Delivery** and add it there. +- In the instance: go to the **Admin** area, then **Settings > CI/CD > Continuous Integration and Delivery** and add it there. The base domain variable `KUBE_INGRESS_BASE_DOMAIN` follows the same order of precedence as other environment [variables](../../ci/variables/index.md#cicd-variable-precedence). diff --git a/doc/topics/autodevops/requirements.md b/doc/topics/autodevops/requirements.md index be2a593c227..98234926460 100644 --- a/doc/topics/autodevops/requirements.md +++ b/doc/topics/autodevops/requirements.md @@ -62,7 +62,7 @@ To define the base domain, either: - In the project, group, or instance level: go to your cluster settings and add it there. - In the project or group level: add it as an environment variable: `KUBE_INGRESS_BASE_DOMAIN`. -- In the instance level: go to the Admin area, then **Settings > CI/CD > Continuous Integration and Delivery** and add it there. +- In the instance level: go to the **Admin** area, then **Settings > CI/CD > Continuous Integration and Delivery** and add it there. The base domain variable `KUBE_INGRESS_BASE_DOMAIN` follows the same order of [precedence as other environment variables](../../ci/variables/index.md#cicd-variable-precedence). diff --git a/doc/tutorials/install_gitlab_single_node/index.md b/doc/tutorials/install_gitlab_single_node/index.md index fc823125553..dfb64fdf4aa 100644 --- a/doc/tutorials/install_gitlab_single_node/index.md +++ b/doc/tutorials/install_gitlab_single_node/index.md @@ -273,7 +273,7 @@ Now it's time to configure GitLab! GitLab comes with some sane default configuration options. In this section, we will change them to add more functionality, and make GitLab more secure. -For some of the options you'll use the Admin area UI, and for some of them you'll +For some of the options you'll use the **Admin** area UI, and for some of them you'll edit `/etc/gitlab/gitlab.rb`, the GitLab configuration file. ### Configure NGINX diff --git a/doc/tutorials/left_sidebar/index.md b/doc/tutorials/left_sidebar/index.md index 20332eff909..b9fd6a13d38 100644 --- a/doc/tutorials/left_sidebar/index.md +++ b/doc/tutorials/left_sidebar/index.md @@ -78,6 +78,6 @@ Then, on the left sidebar, **Your work** is displayed. ## Go to the Admin area -The Admin area is also available on the left sidebar at the bottom: +The **Admin** area is also available on the left sidebar at the bottom: -![Admin area](img/admin_area_v16_7.png) +![**Admin** area](img/admin_area_v16_7.png) diff --git a/doc/update/deprecations.md b/doc/update/deprecations.md index 51170250d54..d9db452ec91 100644 --- a/doc/update/deprecations.md +++ b/doc/update/deprecations.md @@ -3539,7 +3539,7 @@ and `config/redis.shared_state.yml` files. - To discuss this change or learn more, see the [deprecation issue](https://gitlab.com/gitlab-org/gitlab/-/issues/389557).
-The group and project deletion protection setting in the Admin area had an option to delete groups and projects immediately. Starting with 16.0, this option will no longer be available, and delayed group and project deletion will become the default behavior. +The group and project deletion protection setting in the **Admin** area had an option to delete groups and projects immediately. Starting with 16.0, this option will no longer be available, and delayed group and project deletion will become the default behavior. The option will no longer appear as a group setting. Self-managed users will still have the option to define the deletion delay period, and SaaS users have a non-adjustable default retention period of 7 days. Users can still immediately delete the project from the project settings, and the group from the group settings. diff --git a/doc/update/versions/gitlab_16_changes.md b/doc/update/versions/gitlab_16_changes.md index 23630da172f..8872e79e6ac 100644 --- a/doc/update/versions/gitlab_16_changes.md +++ b/doc/update/versions/gitlab_16_changes.md @@ -426,7 +426,7 @@ Specific information applies to Linux package installations: Workarounds: - - Pause the running migration in the [Admin area](../background_migrations.md#from-the-gitlab-ui). + - Pause the running migration in the [**Admin** area](../background_migrations.md#from-the-gitlab-ui). - Recreate table statistics manually on the [database console](../../administration/troubleshooting/postgresql.md#start-a-database-console) to ensure the right query plan is selected: diff --git a/doc/user/application_security/continuous_vulnerability_scanning/index.md b/doc/user/application_security/continuous_vulnerability_scanning/index.md index 5d954418d76..98aac50325b 100644 --- a/doc/user/application_security/continuous_vulnerability_scanning/index.md +++ b/doc/user/application_security/continuous_vulnerability_scanning/index.md @@ -91,7 +91,7 @@ Continuous Vulnerability Scanning uses the Package Metadata Database, a service On GitLab.com, the synchronization is managed by GitLab and is available to all projects. -On GitLab self-managed, 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. +On GitLab self-managed, 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. ### Data sources diff --git a/doc/user/compliance/audit_events.md b/doc/user/compliance/audit_events.md index dcf4e336e55..f348446bf94 100644 --- a/doc/user/compliance/audit_events.md +++ b/doc/user/compliance/audit_events.md @@ -105,4 +105,4 @@ If you don't see the event you want in any of the epics, you can either: ## Administer topics -Instance administrators can [administer audit events](../../administration/audit_event_reports.md) from the Admin area. +Instance administrators can [administer audit events](../../administration/audit_event_reports.md) from the **Admin** area. diff --git a/doc/user/compliance/license_scanning_of_cyclonedx_files/index.md b/doc/user/compliance/license_scanning_of_cyclonedx_files/index.md index 583b42e7450..cf16e7eac06 100644 --- a/doc/user/compliance/license_scanning_of_cyclonedx_files/index.md +++ b/doc/user/compliance/license_scanning_of_cyclonedx_files/index.md @@ -34,7 +34,7 @@ To enable License scanning of CycloneDX files: - Using the Dependency Scanning template - Enable [Dependency Scanning](../../application_security/dependency_scanning/index.md#enabling-the-analyzer) 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 refer to the documentation section [running in an offline environment](#running-in-an-offline-environment) for further guidance. + - 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 refer to the documentation section [running in an offline environment](#running-in-an-offline-environment) for further guidance. - Or use the [CI/CD component](../../../ci/components/index.md) for applicable package registries. ## Supported languages and package managers diff --git a/doc/user/group/saml_sso/scim_setup.md b/doc/user/group/saml_sso/scim_setup.md index 1d8c54cf024..c75284f0d9f 100644 --- a/doc/user/group/saml_sso/scim_setup.md +++ b/doc/user/group/saml_sso/scim_setup.md @@ -195,7 +195,7 @@ Prerequisites: To configure Okta for SCIM: 1. Sign in to Okta. -1. In the upper-right corner, select **Admin**. The button is not visible from the Admin area. +1. In the upper-right corner, select **Admin**. The button is not visible from the **Admin** area. 1. In the **Application** tab, select **Browse App Catalog**. 1. Search for **GitLab**, find and select the **GitLab** application. 1. On the GitLab application overview page, select **Add**. diff --git a/doc/user/group/saml_sso/troubleshooting_scim.md b/doc/user/group/saml_sso/troubleshooting_scim.md index 1111dc1b6d4..c47c17b52f6 100644 --- a/doc/user/group/saml_sso/troubleshooting_scim.md +++ b/doc/user/group/saml_sso/troubleshooting_scim.md @@ -53,7 +53,7 @@ The following are possible solutions for problems where users cannot sign in: To check if a user's SAML `NameId` matches their SCIM `externalId`: -- Administrators can use the Admin area to [list SCIM identities for a user](../../../administration/admin_area.md#user-identities). +- Administrators can use the **Admin** area to [list SCIM identities for a user](../../../administration/admin_area.md#user-identities). - Group owners can see the list of users and the identifier stored for each user in the group SAML SSO Settings page. - You can use the [SCIM API](../../../api/scim.md) to manually retrieve the `extern_uid` GitLab has stored for users and compare the value for each user from the [SAML API](../../../api/saml.md) . - Have the user use a [SAML Tracer](troubleshooting.md#saml-debugging-tools) and compare the `extern_uid` to diff --git a/doc/user/packages/container_registry/reduce_container_registry_storage.md b/doc/user/packages/container_registry/reduce_container_registry_storage.md index 25399c86aee..f246c00c6d2 100644 --- a/doc/user/packages/container_registry/reduce_container_registry_storage.md +++ b/doc/user/packages/container_registry/reduce_container_registry_storage.md @@ -271,7 +271,7 @@ For self-managed instances, those settings can be updated in the [Rails console] ApplicationSetting.last.update(container_registry_expiration_policies_worker_capacity: 3) ``` -They are also available in the [Admin area](../../../administration/admin_area.md): +They are also available in the [**Admin** area](../../../administration/admin_area.md): 1. On the left sidebar, at the bottom, select **Admin**. 1. Select **Settings > CI/CD** diff --git a/doc/user/packages/package_registry/supported_functionality.md b/doc/user/packages/package_registry/supported_functionality.md index 7197801e70b..0c90492d35b 100644 --- a/doc/user/packages/package_registry/supported_functionality.md +++ b/doc/user/packages/package_registry/supported_functionality.md @@ -98,7 +98,7 @@ To reduce the associated security risks, before deleting a package you can: - Verify the package is not being actively used. - Disable request forwarding: - - Instance administrators can disable forwarding in the [**Continuous Integration** section](../../../administration/settings/continuous_integration.md#package-registry-configuration) of the Admin area. + - Instance administrators can disable forwarding in the [**Continuous Integration** section](../../../administration/settings/continuous_integration.md#package-registry-configuration) of the **Admin** area. - Group owners can disable forwarding in the **Packages and Registries** section of the group settings. ## Importing packages from other repositories diff --git a/doc/user/profile/account/create_accounts.md b/doc/user/profile/account/create_accounts.md index 7c2322f3268..7d50e7922de 100644 --- a/doc/user/profile/account/create_accounts.md +++ b/doc/user/profile/account/create_accounts.md @@ -14,7 +14,7 @@ DETAILS: You can create users: - [Manually through the sign-in page](#create-users-on-sign-in-page). -- [Manually in the Admin area](#create-users-in-admin-area). +- [Manually in the **Admin** area](#create-users-in-admin-area). - [Manually using the API](../../../api/users.md). - [Automatically through user authentication integrations](#create-users-through-authentication-integrations). diff --git a/doc/user/profile/account/delete_account.md b/doc/user/profile/account/delete_account.md index 9d9a7c4d3de..3ab1d5d9695 100644 --- a/doc/user/profile/account/delete_account.md +++ b/doc/user/profile/account/delete_account.md @@ -88,7 +88,7 @@ When a user is deleted from an [abuse report](../../../administration/review_abu records are always removed. The deleting associated records option can be requested in the [API](../../../api/users.md#user-deletion) as well as -the Admin area. +the **Admin** area. WARNING: User approvals are associated with a user ID. Other user contributions do not have an associated user ID. When you delete a user and their contributions are moved to a "Ghost User", the approval contributions refer to a missing or invalid user ID. Instead of deleting users, consider [blocking](../../../administration/moderate_users.md#block-a-user), [banning](../../../administration/moderate_users.md#ban-a-user), or [deactivating](../../../administration/moderate_users.md#deactivate-a-user) them. @@ -99,7 +99,7 @@ DETAILS: **Offering:** Self-managed WARNING: -The root account is the most privileged account on the system. Deleting the root account might result in losing access to the instance [Admin area](../../../administration/admin_area.md) if there is no other administrator available on the instance. +The root account is the most privileged account on the system. Deleting the root account might result in losing access to the instance [**Admin** area](../../../administration/admin_area.md) if there is no other administrator available on the instance. You can delete the root account using either the UI or the [GitLab Rails console](../../../administration/operations/rails_console.md). @@ -117,7 +117,7 @@ Prerequisites: To delete the root account: -1. In the Admin area, [create a new user with administrator access](../../profile/account/create_accounts.md#create-users-in-admin-area). This ensures that you maintain administrator access to the instance whilst mitigating the risks associated with deleting the root account. +1. In the **Admin** area, [create a new user with administrator access](../../profile/account/create_accounts.md#create-users-in-admin-area). This ensures that you maintain administrator access to the instance whilst mitigating the risks associated with deleting the root account. 1. [Delete the root account](#delete-users-and-user-contributions). ### Use the GitLab Rails console @@ -179,7 +179,7 @@ ERROR: null value in column "user_id" violates not-null constraint ``` The error can be found in the [PostgreSQL log](../../../administration/logs/index.md#postgresql-logs) and -in the **Retries** section of the [background jobs view](../../../administration/admin_area.md#background-jobs) in the Admin area. +in the **Retries** section of the [background jobs view](../../../administration/admin_area.md#background-jobs) in the **Admin** area. If the user being deleted used the [iterations](../../group/iterations/index.md) feature, such as adding an issue to an iteration, you must use diff --git a/doc/user/project/clusters/add_eks_clusters.md b/doc/user/project/clusters/add_eks_clusters.md index e6f76a7a7e3..c0b71a8ec8b 100644 --- a/doc/user/project/clusters/add_eks_clusters.md +++ b/doc/user/project/clusters/add_eks_clusters.md @@ -57,7 +57,7 @@ cluster certificates: 1. Go to your: - Project's **Operate > Kubernetes clusters** page, for a project-level cluster. - Group's **Kubernetes** page, for a group-level cluster. - - The Admin area's **Kubernetes** page, for an instance-level cluster. + - The **Admin** area's **Kubernetes** page, for an instance-level cluster. 1. Select **Integrate with a cluster certificate**. 1. Under the **Create new cluster** tab, select **Amazon EKS** to display an `Account ID` and `External ID` needed for later steps. diff --git a/doc/user/project/clusters/add_existing_cluster.md b/doc/user/project/clusters/add_existing_cluster.md index b9eeb080b06..fe7a7c0b0da 100644 --- a/doc/user/project/clusters/add_existing_cluster.md +++ b/doc/user/project/clusters/add_existing_cluster.md @@ -30,7 +30,7 @@ To add any cluster to GitLab, you need: - Either a GitLab.com account or an account for a self-managed installation - The Maintainer role for group-level and project-level clusters. -- Access to the Admin area for instance-level clusters. +- Access to the **Admin** area for instance-level clusters. - A Kubernetes cluster. - Cluster administration access to the cluster with `kubectl`. @@ -71,7 +71,7 @@ To add a Kubernetes cluster to your project, group, or instance: 1. Go to your: 1. Project's **{cloud-gear}** **Operate > Kubernetes clusters** page, for a project-level cluster. 1. Group's **{cloud-gear}** **Kubernetes** page, for a group-level cluster. - 1. The Admin area's **Kubernetes** page, for an instance-level cluster. + 1. The **Admin** area's **Kubernetes** page, for an instance-level cluster. 1. On the **Kubernetes clusters** page, select the **Connect with a certificate** option from the **Actions** dropdown list. 1. On the **Connect a cluster** page, fill in the details: 1. **Kubernetes cluster name** (required) - The name you wish to give the cluster. diff --git a/doc/user/project/clusters/add_gke_clusters.md b/doc/user/project/clusters/add_gke_clusters.md index ee82b2729ed..9303c2ad708 100644 --- a/doc/user/project/clusters/add_gke_clusters.md +++ b/doc/user/project/clusters/add_gke_clusters.md @@ -65,7 +65,7 @@ cluster certificates: - Project's **{cloud-gear}** **Operate > Kubernetes clusters** page, for a project-level cluster. - Group's **{cloud-gear}** **Kubernetes** page, for a group-level cluster. - - The Admin area's **Kubernetes** page, for an instance-level cluster. + - The **Admin** area's **Kubernetes** page, for an instance-level cluster. 1. Select **Integrate with a cluster certificate**. 1. Under the **Create new cluster** tab, select **Google GKE**. 1. Connect your Google account if you haven't done already by selecting the diff --git a/doc/user/project/clusters/add_remove_clusters.md b/doc/user/project/clusters/add_remove_clusters.md index f3bbf6291e6..98950951746 100644 --- a/doc/user/project/clusters/add_remove_clusters.md +++ b/doc/user/project/clusters/add_remove_clusters.md @@ -23,7 +23,7 @@ When you successfully connect an existing cluster using cluster certificates, th 1. Go to your: - Project's **{cloud-gear}** **Operate > Kubernetes clusters** page, for a project-level cluster. - Group's **{cloud-gear}** **Kubernetes** page, for a group-level cluster. - - The Admin area's **Kubernetes** page, for an instance-level cluster. + - The **Admin** area's **Kubernetes** page, for an instance-level cluster. 1. Select the name of the cluster you want to disable. 1. Toggle **GitLab Integration** off (in gray). 1. Select **Save changes**. diff --git a/doc/user/project/codeowners/code_owners_troubleshooting.md b/doc/user/project/codeowners/code_owners_troubleshooting.md new file mode 100644 index 00000000000..0ed223abaf2 --- /dev/null +++ b/doc/user/project/codeowners/code_owners_troubleshooting.md @@ -0,0 +1,81 @@ +--- +stage: Create +group: Source Code +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments +description: "Use Code Owners to define experts for your code base, and set review requirements based on file type or location." +--- + +## Troubleshooting Code Owners + +DETAILS: +**Tier:** Premium, Ultimate +**Offering:** GitLab.com, Self-managed, GitLab Dedicated + +When working with Code Owners, you might encounter the following issues. + +For more information about how the Code Owners feature handles errors, see the +[Code Owners reference](reference.md). + +### Approvals shown as optional + +A Code Owner approval rule is optional if any of these conditions are true: + +- The user or group is not a member of the project. + Code Owners [cannot inherit members from parent groups](https://gitlab.com/gitlab-org/gitlab/-/issues/288851/). +- [Code Owner approval on a protected branch](../protected_branches.md#require-code-owner-approval-on-a-protected-branch) has not been set up. +- The section is [marked as optional](index.md#make-a-code-owners-section-optional). +- No eligible code owners are available to approve the merge request due to conflicts + with other [merge request approval settings](../merge_requests/approvals/settings.md). + +### Approvals do not show + +Code Owner approval rules only update when the merge request is created. +If you update the `CODEOWNERS` file, close the merge request and create a new one. + +### User not shown as possible approver + +A user might not show as an approver on the Code Owner merge request approval rules +if any of these conditions are true: + +- A rule prevents the specific user from approving the merge request. + Check the project [merge request approval](../merge_requests/approvals/settings.md#edit-merge-request-approval-settings) settings. +- A Code Owner group has a visibility of **private**, and the current user is not a + member of the Code Owner group. +- Current user is an external user who does not have permission to the internal Code Owner group. + +### Approval rule is invalid + +You might get an error that states: + +```plaintext +Approval rule is invalid. +GitLab has approved this rule automatically to unblock the merge request. +``` + +This issue occurs when an approval rule uses a Code Owner that is not a direct member of the project. + +The workaround is to check that the group or user has been invited to the project. + +### User or group not shown when viewing Code Owners for a directory + +Code Owners might not show the intended user or group based on your configured rules when viewing a directory, +but correctly show the Code Owners for files beneath the directory. + +For example: + +```plaintext +* @dev-team +docs/ @tech-writer-team +``` + +All files beneath the `docs/` directory show `@tech-writer-team` as Code Owners, but the directory itself will show `@dev-team`. + +This behavior occurs when viewing a directory because the [syntax rule](../../project/codeowners/reference.md#directory-paths) +applies to all files beneath the directory, which does not include the directory itself. To resolve this, update the `CODEOWNERS` file to include the +directory specifically along with all files beneath the directory. For example: + +```plaintext +* @dev-team +docs @tech-writer-team +docs/ @tech-writer-team +``` diff --git a/doc/user/project/codeowners/index.md b/doc/user/project/codeowners/index.md index b91dc3cf8e1..b75e51da2a5 100644 --- a/doc/user/project/codeowners/index.md +++ b/doc/user/project/codeowners/index.md @@ -415,74 +415,3 @@ All changes from users _without_ the **Allowed to push** permission must be rout - [Syntax reference](reference.md) - [Development guidelines](../../../development/code_owners/index.md) - -## Troubleshooting - -When working with Code Owners, you might encounter the following issues. - -For more information about how the Code Owners feature handles errors, see the -[Code Owners reference](reference.md). - -### Approvals shown as optional - -A Code Owner approval rule is optional if any of these conditions are true: - -- The user or group is not a member of the project. - Code Owners [cannot inherit members from parent groups](https://gitlab.com/gitlab-org/gitlab/-/issues/288851/). -- [Code Owner approval on a protected branch](../protected_branches.md#require-code-owner-approval-on-a-protected-branch) has not been set up. -- The section is [marked as optional](#make-a-code-owners-section-optional). -- No eligible code owners are available to approve the merge request due to conflicts - with other [merge request approval settings](../merge_requests/approvals/settings.md). - -### Approvals do not show - -Code Owner approval rules only update when the merge request is created. -If you update the `CODEOWNERS` file, close the merge request and create a new one. - -### User not shown as possible approver - -A user might not show as an approver on the Code Owner merge request approval rules -if any of these conditions are true: - -- A rule prevents the specific user from approving the merge request. - Check the project [merge request approval](../merge_requests/approvals/settings.md#edit-merge-request-approval-settings) settings. -- A Code Owner group has a visibility of **private**, and the current user is not a - member of the Code Owner group. -- Current user is an external user who does not have permission to the internal Code Owner group. - -### Approval rule is invalid - -You might get an error that states: - -```plaintext -Approval rule is invalid. -GitLab has approved this rule automatically to unblock the merge request. -``` - -This issue occurs when an approval rule uses a Code Owner that is not a direct member of the project. - -The workaround is to check that the group or user has been invited to the project. - -### User or group not shown when viewing Code Owners for a directory - -Code Owners might not show the intended user or group based on your configured rules when viewing a directory, -but correctly show the Code Owners for files beneath the directory. - -For example: - -```plaintext -* @dev-team -docs/ @tech-writer-team -``` - -All files beneath the `docs/` directory show `@tech-writer-team` as Code Owners, but the directory itself will show `@dev-team`. - -This behavior occurs when viewing a directory because the [syntax rule](../../project/codeowners/reference.md#directory-paths) -applies to all files beneath the directory, which does not include the directory itself. To resolve this, update the `CODEOWNERS` file to include the -directory specifically along with all files beneath the directory. For example: - -```plaintext -* @dev-team -docs @tech-writer-team -docs/ @tech-writer-team -``` diff --git a/doc/user/project/project_topics.md b/doc/user/project/project_topics.md index 39773559b02..5ca95231489 100644 --- a/doc/user/project/project_topics.md +++ b/doc/user/project/project_topics.md @@ -90,4 +90,4 @@ To assign topics to a project: ## Administer topics Instance administrators can administer all project topics from the -[Admin area's Topics page](../../administration/admin_area.md#administering-topics). +[**Admin** area's Topics page](../../administration/admin_area.md#administering-topics). diff --git a/doc/user/project/protected_branches.md b/doc/user/project/protected_branches.md index a867010a0a9..3fb6c715d06 100644 --- a/doc/user/project/protected_branches.md +++ b/doc/user/project/protected_branches.md @@ -89,7 +89,7 @@ that matches `v1.x` must set `Allowed to push and merge` to `No one`, like this: ### Set the default branch protection level Administrators can set a default branch protection level in the -[Admin area](../project/repository/branches/default.md#instance-level-default-branch-protection). +[**Admin** area](../project/repository/branches/default.md#instance-level-default-branch-protection). ## Add protection to existing branches diff --git a/doc/user/project/settings/import_export.md b/doc/user/project/settings/import_export.md index 9b6194ceb81..46b061e73a9 100644 --- a/doc/user/project/settings/import_export.md +++ b/doc/user/project/settings/import_export.md @@ -273,7 +273,7 @@ DETAILS: Administrators can set the maximum import file size one of two ways: - With the `max_import_size` option in the [Application settings API](../../../api/settings.md#change-application-settings). -- In the [Admin area UI](../../../administration/settings/import_and_export_settings.md#max-import-size). +- In the [**Admin** area UI](../../../administration/settings/import_and_export_settings.md#max-import-size). The default is `0` (unlimited). @@ -329,7 +329,7 @@ The maximum import file size depends on whether you import to a GitLab self-mana - If importing to a GitLab self-managed instance, you can import a import file of any size. Administrators can change this behavior using either: - The `max_import_size` option in the [Application settings API](../../../api/settings.md#change-application-settings). - - The [Admin area](../../../administration/settings/account_and_limit_settings.md). + - The [**Admin** area](../../../administration/settings/account_and_limit_settings.md). - On GitLab.com, you can import groups using import files of no more than [5 GB](../../gitlab_com/index.md#account-and-limit-settings) in size. diff --git a/doc/user/project/working_with_projects.md b/doc/user/project/working_with_projects.md index de6b3b9d4ae..6a16a27bd0c 100644 --- a/doc/user/project/working_with_projects.md +++ b/doc/user/project/working_with_projects.md @@ -186,7 +186,7 @@ DETAILS: **Tier:** Premium, Ultimate **Offering:** GitLab.com, Self-managed, GitLab Dedicated -> - Option to delete projects immediately from the Admin area and as a group setting removed [on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/393622) and [on self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/119606) in GitLab 16.0. +> - Option to delete projects immediately from the **Admin** area and as a group setting removed [on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/issues/393622) and [on self-managed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/119606) in GitLab 16.0. Prerequisites: diff --git a/lib/gitlab/git/repository.rb b/lib/gitlab/git/repository.rb index e3ddb8ea239..754e975fedb 100644 --- a/lib/gitlab/git/repository.rb +++ b/lib/gitlab/git/repository.rb @@ -503,6 +503,15 @@ module Gitlab Set.new(branches) end + # Returns an array of DiffBlob objects that represent a diff between + # two blobs in a repository. For each diff generated, the pre-image and + # post-image blob IDs should be obtained using `find_changed_paths` method. + def diff_blobs(...) + wrapped_gitaly_errors do + gitaly_diff_client.diff_blobs(...) + end + end + # Return an array of Diff objects that represent the diff # between +from+ and +to+. See Diff::filter_diff_options for the allowed # diff options. The +options+ hash can also include :break_rewrites to @@ -1056,6 +1065,10 @@ module Gitlab @gitaly_blob_client ||= Gitlab::GitalyClient::BlobService.new(self) end + def gitaly_diff_client + @gitaly_diff_client ||= Gitlab::GitalyClient::DiffService.new(self) + end + def gitaly_conflicts_client(our_commit_oid, their_commit_oid) Gitlab::GitalyClient::ConflictsService.new(self, our_commit_oid, their_commit_oid) end diff --git a/lib/gitlab/gitaly_client/diff_blob.rb b/lib/gitlab/gitaly_client/diff_blob.rb new file mode 100644 index 00000000000..33cca84a55a --- /dev/null +++ b/lib/gitlab/gitaly_client/diff_blob.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module Gitlab + module GitalyClient + class DiffBlob + ATTRS = %i[left_blob_id right_blob_id patch status binary over_patch_bytes_limit].freeze + + include AttributesBag # rubocop:disable Layout/ClassStructure -- ATTRS needs to be defined before the include. + end + end +end diff --git a/lib/gitlab/gitaly_client/diff_blobs_stitcher.rb b/lib/gitlab/gitaly_client/diff_blobs_stitcher.rb new file mode 100644 index 00000000000..08827499c28 --- /dev/null +++ b/lib/gitlab/gitaly_client/diff_blobs_stitcher.rb @@ -0,0 +1,44 @@ +# frozen_string_literal: true + +module Gitlab + module GitalyClient + class DiffBlobsStitcher + include Enumerable + + def initialize(rpc_response) + @rpc_response = rpc_response + end + + def each + current_diff_blob = nil + + @rpc_response.each do |diff_blob_msg| + if current_diff_blob.nil? + diff_blobs_params = diff_blob_msg.to_h.slice( + :left_blob_id, + :right_blob_id, + :patch, + :status, + :binary, + :over_patch_bytes_limit + ) + + current_diff_blob = Gitlab::GitalyClient::DiffBlob.new(diff_blobs_params) + else + current_diff_blob.patch = "#{current_diff_blob.patch}#{diff_blob_msg.patch}" + current_diff_blob.status = diff_blob_msg.status + end + + if current_diff_blob.status == :STATUS_END_OF_PATCH + yield current_diff_blob + current_diff_blob = nil + end + end + end + + private + + attr_reader :rpc_response + end + end +end diff --git a/lib/gitlab/gitaly_client/diff_service.rb b/lib/gitlab/gitaly_client/diff_service.rb new file mode 100644 index 00000000000..7bd61d1c523 --- /dev/null +++ b/lib/gitlab/gitaly_client/diff_service.rb @@ -0,0 +1,45 @@ +# frozen_string_literal: true + +module Gitlab + module GitalyClient + class DiffService + include WithFeatureFlagActors + + WHITESPACE_CHANGES = { + unspecified: Gitaly::DiffBlobsRequest::WhitespaceChanges::WHITESPACE_CHANGES_UNSPECIFIED, + ignore_spaces: Gitaly::DiffBlobsRequest::WhitespaceChanges::WHITESPACE_CHANGES_IGNORE, + ignore_all_spaces: Gitaly::DiffBlobsRequest::WhitespaceChanges::WHITESPACE_CHANGES_IGNORE_ALL + }.freeze + + DIFF_MODES = { + unspecified: Gitaly::DiffBlobsRequest::DiffMode::DIFF_MODE_UNSPECIFIED, + word: Gitaly::DiffBlobsRequest::DiffMode::DIFF_MODE_WORD + }.freeze + + def initialize(repository) + @gitaly_repo = repository.gitaly_repository + @storage = repository.storage + + self.repository_actor = repository + end + + def diff_blobs( + blob_pairs, diff_mode: DIFF_MODES[:unspecified], whitespace_changes: WHITESPACE_CHANGES[:unspecified], + patch_bytes_limit: 0 + ) + request = Gitaly::DiffBlobsRequest.new( + repository: @gitaly_repo, + blob_pairs: blob_pairs, + diff_mode: diff_mode, + whitespace_changes: whitespace_changes, + patch_bytes_limit: patch_bytes_limit + ) + + response = gitaly_client_call(@storage, :diff_service, :diff_blobs, request, + timeout: GitalyClient.medium_timeout) + + GitalyClient::DiffBlobsStitcher.new(response) + end + end + end +end diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 061390a3cb1..0851cbb5208 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -3729,9 +3729,15 @@ msgstr "" msgid "AdminSelfHostedModels|API token (if needed)" msgstr "" +msgid "AdminSelfHostedModels|Add a new AI model that can be used for GitLab Duo features." +msgstr "" + msgid "AdminSelfHostedModels|Add self-hosted language models to use as backups for GitLab Duo features." msgstr "" +msgid "AdminSelfHostedModels|Add self-hosted models" +msgstr "" + msgid "AdminSelfHostedModels|An API key is set" msgstr "" @@ -9648,9 +9654,6 @@ msgstr "" msgid "BroadcastMessages|Your message here" msgstr "" -msgid "Browse CI/CD Catalog" -msgstr "" - msgid "Browse Directory" msgstr "" @@ -12728,10 +12731,10 @@ msgstr "" msgid "Code Coverage: %{coveragePercentage}%{percentSymbol}" msgstr "" -msgid "Code Coverage| Empty code coverage data" +msgid "Code Coverage|Couldn't fetch the code coverage data" msgstr "" -msgid "Code Coverage|Couldn't fetch the code coverage data" +msgid "Code Coverage|No code coverage data" msgstr "" msgid "Code Owner" @@ -12752,9 +12755,6 @@ msgstr "" msgid "Code Review" msgstr "" -msgid "Code Review Analytics displays a table of open merge requests considered to be in code review. There are currently no merge requests in review for this project and/or filters." -msgstr "" - msgid "Code block" msgstr "" @@ -12764,6 +12764,9 @@ msgstr "" msgid "Code completion test was successful" msgstr "" +msgid "Code coverage results are not yet available. Try again later." +msgstr "" + msgid "Code coverage statistics for %{ref} %{start_date} - %{end_date}" msgstr "" @@ -15422,6 +15425,9 @@ msgstr "" msgid "Create a merge request branch target." msgstr "" +msgid "Create a merge request, or edit your criteria and try again." +msgstr "" + msgid "Create a new %{codeStart}.gitlab-ci.yml%{codeEnd} file at the root of the repository to get started." msgstr "" @@ -29098,9 +29104,6 @@ msgstr "" msgid "It seems like the Dependency Scanning job ran successfully, but no dependencies have been detected in your project." msgstr "" -msgid "It seems that there is currently no available data for code coverage" -msgstr "" - msgid "It's you" msgstr "" @@ -33080,9 +33083,6 @@ msgstr "" msgid "Metric" msgstr "" -msgid "Metric:" -msgstr "" - msgid "MetricChart|Please select a metric" msgstr "" @@ -35012,6 +35012,9 @@ msgstr "" msgid "No more than %{max_work_items} work items can be modified at the same time." msgstr "" +msgid "No open merge requests" +msgstr "" + msgid "No options found" msgstr "" @@ -61382,9 +61385,6 @@ msgstr "" msgid "You don't have any authorized applications." msgstr "" -msgid "You don't have any open merge requests" -msgstr "" - msgid "You don't have any recent searches" msgstr "" diff --git a/spec/features/merge_requests/user_sees_nav_buttons_spec.rb b/spec/features/merge_requests/user_sees_nav_buttons_spec.rb new file mode 100644 index 00000000000..3679a2eed1d --- /dev/null +++ b/spec/features/merge_requests/user_sees_nav_buttons_spec.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe 'Merge request > User sees nav buttons', feature_category: :code_review_workflow do + let_it_be(:project) { create(:project) } + let_it_be(:maintainer) { create(:user) } + let_it_be(:guest) { create(:user) } + let_it_be(:merge_request) { create(:merge_request, source_project: project, target_project: project) } + + before_all do + project.add_maintainer(maintainer) + project.add_guest(guest) + end + + context 'as a maintainer' do + before do + sign_in(maintainer) + + visit project_merge_requests_path(project) + end + + it 'shows the "New merge request" button' do + expect(page).to have_link 'New merge request', href: project_new_merge_request_path(project) + end + + it 'shows the "Bulk edit" button' do + expect(page).to have_button 'Bulk edit' + end + + it 'does not show the "Merge trains" button' do + expect(page).not_to have_link 'Merge trains' + end + end + + context 'as a guest' do + before do + sign_in(guest) + + visit project_merge_requests_path(project) + end + + it 'does not show the "New merge request" button' do + expect(page).not_to have_link 'New merge request' + end + + it 'does not show the "Bulk edit" button' do + expect(page).not_to have_button 'Bulk edit' + end + + it 'does not show the "Merge trains" button' do + expect(page).not_to have_link 'Merge trains' + end + end +end diff --git a/spec/frontend/diffs/components/file_row_stats_spec.js b/spec/frontend/diffs/components/file_row_stats_spec.js index 7d3b60d2ba4..b24a556925c 100644 --- a/spec/frontend/diffs/components/file_row_stats_spec.js +++ b/spec/frontend/diffs/components/file_row_stats_spec.js @@ -24,6 +24,6 @@ describe('Diff file row stats', () => { }); it('renders removed lines count', () => { - expect(wrapper.find('.cred').text()).toContain('-10'); + expect(wrapper.find('[data-testid="file-removed-lines"]').text()).toContain('-10'); }); }); diff --git a/spec/frontend/diffs/store/actions_spec.js b/spec/frontend/diffs/store/actions_spec.js index a39f6705116..e480a5e4801 100644 --- a/spec/frontend/diffs/store/actions_spec.js +++ b/spec/frontend/diffs/store/actions_spec.js @@ -702,6 +702,27 @@ describe('DiffsStoreActions', () => { { type: types.SET_CURRENT_DIFF_FILE, payload: 'ABC' }, ]); }); + + it('should prevent default event', () => { + const preventDefault = jest.fn(); + const target = { href: TEST_HOST }; + const event = { target, preventDefault }; + testAction(diffActions.setHighlightedRow, { lineCode: 'ABC_123', event }, {}, [ + { type: types.SET_HIGHLIGHTED_ROW, payload: 'ABC_123' }, + { type: types.SET_CURRENT_DIFF_FILE, payload: 'ABC' }, + ]); + expect(preventDefault).toHaveBeenCalled(); + }); + + it('should filter out pinned file param', () => { + const target = { href: `${TEST_HOST}/diffs?pin=foo#abc_11` }; + const event = { target, preventDefault: jest.fn() }; + testAction(diffActions.setHighlightedRow, { lineCode: 'ABC_123', event }, {}, [ + { type: types.SET_HIGHLIGHTED_ROW, payload: 'ABC_123' }, + { type: types.SET_CURRENT_DIFF_FILE, payload: 'ABC' }, + ]); + expect(window.location.href).toBe(`${TEST_HOST}/diffs#abc_11`); + }); }); describe('assignDiscussionsToDiff', () => { diff --git a/spec/frontend/projects/settings_service_desk/components/service_desk_setting_spec.js b/spec/frontend/projects/settings_service_desk/components/service_desk_setting_spec.js index 55724d42b04..8e6455f9747 100644 --- a/spec/frontend/projects/settings_service_desk/components/service_desk_setting_spec.js +++ b/spec/frontend/projects/settings_service_desk/components/service_desk_setting_spec.js @@ -62,8 +62,8 @@ describe('ServiceDeskSetting', () => { expect(findIssueTrackerInfo().exists()).toBe(true); expect(findIssueHelpLink().text()).toEqual('activate the issue tracker'); expect(findIssueHelpLink().attributes('href')).toBe( - helpPagePath('user/project/settings/index.md', { - anchor: 'configure-project-visibility-features-and-permissions', + helpPagePath('user/project/settings/index', { + anchor: 'configure-project-features-and-permissions', }), ); }); diff --git a/spec/lib/gitlab/git/repository_spec.rb b/spec/lib/gitlab/git/repository_spec.rb index d487c06ec7e..c0cdf90dbab 100644 --- a/spec/lib/gitlab/git/repository_spec.rb +++ b/spec/lib/gitlab/git/repository_spec.rb @@ -1652,6 +1652,36 @@ RSpec.describe Gitlab::Git::Repository, feature_category: :source_code_managemen end end + describe '#diff_blobs' do + let(:gitaly_diff_client) { double('Gitlab::GitalyClient::DiffService') } + + # SHAs used are from https://gitlab.com/gitlab-org/gitlab-test. + let(:left_blob) { '1e292f8fedd741b75372e19097c76d327140c312' } + let(:right_blob) { 'ddd0f15ae83993f5cb66a927a28673882e99100b' } + + let(:blob_pairs) do + [ + Gitaly::DiffBlobsRequest::BlobPair.new( + left_blob: left_blob, + right_blob: right_blob + ) + ] + end + + before do + allow(repository).to receive(:gitaly_diff_client).and_return(gitaly_diff_client) + allow(gitaly_diff_client).to receive(:diff_blobs) + + repository.diff_blobs(blob_pairs) + end + + it 'passes the values to the diff client' do + expect(gitaly_diff_client) + .to have_received(:diff_blobs) + .with(blob_pairs) + end + end + describe '#diff_stats' do let(:left_commit_id) { 'feature' } let(:right_commit_id) { 'master' } @@ -2983,4 +3013,10 @@ RSpec.describe Gitlab::Git::Repository, feature_category: :source_code_managemen end end end + + describe '#gitaly_diff_client' do + it 'instantiates a new DiffService class' do + expect(repository.gitaly_diff_client).to be_a(Gitlab::GitalyClient::DiffService) + end + end end diff --git a/spec/lib/gitlab/gitaly_client/diff_blob_spec.rb b/spec/lib/gitlab/gitaly_client/diff_blob_spec.rb new file mode 100644 index 00000000000..aa725e1b178 --- /dev/null +++ b/spec/lib/gitlab/gitaly_client/diff_blob_spec.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +require 'fast_spec_helper' + +RSpec.describe Gitlab::GitalyClient::DiffBlob, feature_category: :gitaly do + let(:diff_blob_fields) do + { + left_blob_id: '357406f3075a57708d0163752905cc1576fceacc', + right_blob_id: '8e5177d718c561d36efde08bad36b43687ee6bf0', + patch: 'a' * 100, + status: :STATUS_END_OF_PATCH, + binary: false, + over_patch_bytes_limit: false + } + end + + subject(:diff_blob) { described_class.new(diff_blob_fields) } + + it { is_expected.to respond_to(:left_blob_id) } + it { is_expected.to respond_to(:right_blob_id) } + it { is_expected.to respond_to(:patch) } + it { is_expected.to respond_to(:status) } + it { is_expected.to respond_to(:binary) } + it { is_expected.to respond_to(:over_patch_bytes_limit) } +end diff --git a/spec/lib/gitlab/gitaly_client/diff_blobs_stitcher_spec.rb b/spec/lib/gitlab/gitaly_client/diff_blobs_stitcher_spec.rb new file mode 100644 index 00000000000..3f4c3067c71 --- /dev/null +++ b/spec/lib/gitlab/gitaly_client/diff_blobs_stitcher_spec.rb @@ -0,0 +1,56 @@ +# frozen_string_literal: true + +require 'fast_spec_helper' + +RSpec.describe Gitlab::GitalyClient::DiffBlobsStitcher, feature_category: :gitaly do + describe 'enumeration' do + it 'combines segregated diff blob messages together' do + messages = [ + Message.new( + left_blob_id: '357406f3075a57708d0163752905cc1576fceacc', + right_blob_id: '8e5177d718c561d36efde08bad36b43687ee6bf0', + patch: 'a' * 100, + status: :STATUS_INCOMPLETE, + binary: false, + over_patch_bytes_limit: false + ), + Message.new( + left_blob_id: '357406f3075a57708d0163752905cc1576fceacc', + right_blob_id: '8e5177d718c561d36efde08bad36b43687ee6bf0', + patch: 'a' * 100, + status: :STATUS_END_OF_PATCH, + binary: false, + over_patch_bytes_limit: false + ), + Message.new( + left_blob_id: '8f2e9b1c4d7a3f5e6b0d2c8a9f1e3d5b7c4a6e8d', + right_blob_id: '3a1d9c7b5f2e8d4a6c0b3e9f1d7a5c2b8e4f6a0', + patch: 'b' * 100, + status: :STATUS_END_OF_PATCH, + binary: false, + over_patch_bytes_limit: false + ) + ] + + diff_blobs = described_class.new(messages).to_a + + expect(diff_blobs.size).to eq(2) + + expect(diff_blobs.first.left_blob_id).to eq('357406f3075a57708d0163752905cc1576fceacc') + expect(diff_blobs.first.right_blob_id).to eq('8e5177d718c561d36efde08bad36b43687ee6bf0') + expect(diff_blobs.first.patch).to eq('a' * 200) + expect(diff_blobs.first.status).to eq(:STATUS_END_OF_PATCH) + expect(diff_blobs.first.binary).to eq(false) + expect(diff_blobs.first.over_patch_bytes_limit).to eq(false) + + expect(diff_blobs.last.left_blob_id).to eq('8f2e9b1c4d7a3f5e6b0d2c8a9f1e3d5b7c4a6e8d') + expect(diff_blobs.last.right_blob_id).to eq('3a1d9c7b5f2e8d4a6c0b3e9f1d7a5c2b8e4f6a0') + expect(diff_blobs.last.patch).to eq('b' * 100) + expect(diff_blobs.last.status).to eq(:STATUS_END_OF_PATCH) + expect(diff_blobs.last.binary).to eq(false) + expect(diff_blobs.last.over_patch_bytes_limit).to eq(false) + end + end +end + +Message = Struct.new(:left_blob_id, :right_blob_id, :patch, :status, :binary, :over_patch_bytes_limit) diff --git a/spec/lib/gitlab/gitaly_client/diff_service_spec.rb b/spec/lib/gitlab/gitaly_client/diff_service_spec.rb new file mode 100644 index 00000000000..d297a7887be --- /dev/null +++ b/spec/lib/gitlab/gitaly_client/diff_service_spec.rb @@ -0,0 +1,44 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Gitlab::GitalyClient::DiffService, feature_category: :gitaly do + let_it_be(:project) { create(:project, :repository) } + + let(:repository) { project.repository } + let(:repository_message) { repository.gitaly_repository } + + describe '#diff_blobs' do + # SHAs used are from https://gitlab.com/gitlab-org/gitlab-test. + let(:left_blob) { '1e292f8fedd741b75372e19097c76d327140c312' } + let(:right_blob) { 'ddd0f15ae83993f5cb66a927a28673882e99100b' } + let(:blob_pairs) do + [ + Gitaly::DiffBlobsRequest::BlobPair.new( + left_blob: left_blob, + right_blob: right_blob + ) + ] + end + + subject(:diff_blobs) { described_class.new(repository).diff_blobs(blob_pairs) } + + it 'sends a RPC request' do + request = Gitaly::DiffBlobsRequest.new( + repository: repository_message, + blob_pairs: blob_pairs + ) + + expect_any_instance_of(Gitaly::DiffService::Stub) do |instance| + expect(instance).to receive(:diff_blobs) + .with(request, kind_of(Hash)) + end + + diff_blobs + end + + it 'returns a Gitlab::GitalyClient::DiffBlobsStitcher' do + expect(diff_blobs).to be_kind_of(Gitlab::GitalyClient::DiffBlobsStitcher) + end + end +end diff --git a/spec/mailers/emails/projects_spec.rb b/spec/mailers/emails/projects_spec.rb index 9518672939b..94ef98dafe2 100644 --- a/spec/mailers/emails/projects_spec.rb +++ b/spec/mailers/emails/projects_spec.rb @@ -74,7 +74,6 @@ RSpec.describe Emails::Projects do is_expected.to have_body_text(alert.details_url) is_expected.not_to have_body_text('Description:') is_expected.not_to have_body_text('Environment:') - is_expected.not_to have_body_text('Metric:') end end @@ -96,7 +95,6 @@ RSpec.describe Emails::Projects do is_expected.to have_body_text('Description:') is_expected.to have_body_text('alert description') is_expected.not_to have_body_text('Environment:') - is_expected.not_to have_body_text('Metric:') end end @@ -120,7 +118,6 @@ RSpec.describe Emails::Projects do is_expected.to have_body_text('Environment:') is_expected.to have_body_text(environment.name) is_expected.not_to have_body_text('Description:') - is_expected.not_to have_body_text('Metric:') end end diff --git a/spec/support/helpers/disable_namespace_organization_validation_helper.rb b/spec/support/helpers/disable_namespace_organization_validation_helper.rb index dd756c5b195..9e2ab50b3a6 100644 --- a/spec/support/helpers/disable_namespace_organization_validation_helper.rb +++ b/spec/support/helpers/disable_namespace_organization_validation_helper.rb @@ -20,8 +20,8 @@ module DisableNamespaceOrganizationValidationHelper end end - included do - spec_file = Pathname.new(example.metadata[:example_group][:file_path]).realpath.to_s + included do |base| + spec_file = base.metadata[:absolute_file_path] if spec_file.in?(DisableNamespaceOrganizationValidationHelper.todo_list) around do |example|