Fix all broken links to docs from Ruby files

Problem to solve

Thanks to the new rubocop test that looks for invalid links in Ruby code, we can finally find all the links to docs from Ruby that have broken over the years.

The full list of broken links is in this spreadsheet, with Stage/Groups listed for every broken link: https://docs.google.com/spreadsheets/d/140ybt7omFgudgd-6wMXVprnN1KTMDiI5vYmRv9OgxEo/

  • Technical Writers: Please check the list and add your name to the files for your assigned stages/groups.
  • Community contributors: If you'd like to fix any of these, please review the spreadsheet and find a file you'd like to fix. Leave a message in this issue letting me know which file you want to work on, be sure to mention @marcel.amirault so I see your message. I will add your name to the list myself. 🙇

Example link fix MR: Fix links in pipeline editor helper (!170378 - merged)

Implementation

Optional: Verify the issue yourself

To run the lint test yourself:

  1. From your local gitlab repository, run bundle install

  2. In .rubocop_todo/gitlab/documentation_links/link.yml, remove the file you are testing (otherwise it'll get ignored).

  3. Run bundle exec rubocop --only Gitlab/DocumentationLinks/Link <file_name.rb>, for example:

    ❯ bundle exec rubocop --only Gitlab/DocumentationLinks/Link app/helpers/ci/pipeline_editor_helper.rb
    Inspecting 1 file
    C
    
    Offenses:
    
    app/helpers/ci/pipeline_editor_helper.rb:22:38: C: Gitlab/DocumentationLinks/Link: This file does not exist: doc/ci/troubleshooting.md.
            "ci-troubleshooting-path" => help_page_path('ci/troubleshooting.md', anchor: 'common-cicd-issues'),
                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    app/helpers/ci/pipeline_editor_helper.rb:27:34: C: Gitlab/DocumentationLinks/Link: The anchor #check-cicd-syntax was not found in doc/ci/lint.md.
            "lint-help-page-path" => help_page_path('ci/lint.md', anchor: 'check-cicd-syntax'),
                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    1 file inspected, 2 offenses detected

Fix the issue

  1. Fix the issue in the file.

  2. Optional: If you can run the lint test again, verify it's fixed:

    ❯ bundle exec rubocop --only Gitlab/DocumentationLinks/Link app/helpers/ci/pipeline_editor_helper.rb                 
    Inspecting 1 file
    .
    
    1 file inspected, no offenses detected
  3. Optional: If there's a related ruby spec file, you can test it too. Requires updated and running GDK:

    ❯ bin/rspec spec/helpers/ci/pipeline_editor_helper_spec.rb
    
    [...snip...]
    
    ==> Starting Gitaly (64d528040625ca4350ce1d0f1df4f037f0cc5d37) set up...
    ==> GitLab Workhorse set up in 22.520565 seconds...
    ==> Gitaly set up in 83.049117 seconds...
    
    Test environment set up in 89.449324 seconds
    ........
    
    Finished in 1 minute 39.27 seconds (files took 44.96 seconds to load)
    8 examples, 0 failures
  4. Create an MR and wait for the pipeline. In some cases, the pipeline will fail because other files need to be updated to match the fixed link. Review any failed jobs to see which files are affected. Update those files and add the changes to the MR. Be sure to mention this issue (https://gitlab.com/gitlab-org/gitlab/-/issues/500232) in the description.

  5. When the pipeline is green (or only seems to have unrelated pipeline failures), submit it to @marcel.amirault for review.

Other details

This is the full list of broken links as per Rubocop, generated by:

  1. Removing all excluded files from .rubocop_todo/gitlab/documentation_links/link.yml
  2. Running: bundle exec rubocop --only Gitlab/DocumentationLinks/Link
Click to expand for raw output
Offenses:

app/controllers/jira_connect/app_descriptor_controller.rb:28:24: C: Gitlab/DocumentationLinks/Link: This file does not exist: doc/integration/jira_development_panel.md.
        documentation: help_page_url('integration/jira_development_panel.md', anchor: 'gitlabcom-1')
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/controllers/jwt_controller.rb:67:17: C: Gitlab/DocumentationLinks/Link: The anchor #troubleshooting was not found in doc/user/profile/account/two_factor_authentication.md.
    help_page = help_page_url( ...
                ^^^^^^^^^^^^^^
app/helpers/ci/jobs_helper.rb:15:42: C: Gitlab/DocumentationLinks/Link: The anchor #retry-outdated-jobs was not found in doc/ci/pipelines/settings.md.
        "retry_outdated_job_docs_url" => help_page_path('ci/pipelines/settings.md', anchor: 'retry-outdated-jobs'),
                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/helpers/ci/pipeline_editor_helper.rb:22:38: C: Gitlab/DocumentationLinks/Link: This file does not exist: doc/ci/troubleshooting.md.
        "ci-troubleshooting-path" => help_page_path('ci/troubleshooting.md', anchor: 'common-cicd-issues'),
                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/helpers/ci/pipeline_editor_helper.rb:27:34: C: Gitlab/DocumentationLinks/Link: The anchor #check-cicd-syntax was not found in doc/ci/lint.md.
        "lint-help-page-path" => help_page_path('ci/lint.md', anchor: 'check-cicd-syntax'),
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/helpers/ide_helper.rb:8:39: C: Gitlab/DocumentationLinks/Link: The anchor #vscode-reimplementation was not found in doc/user/project/web_ide/index.md.
      'new-web-ide-help-page-path' => help_page_path('user/project/web_ide/index.md', anchor: 'vscode-reimplementation'),
                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/helpers/ide_helper.rb:105:35: C: Gitlab/DocumentationLinks/Link: The anchor #interactive-web-terminals-for-the-web-ide was not found in doc/user/project/web_ide/index.md.
      'web-terminal-help-path' => help_page_path('user/project/web_ide/index.md', anchor: 'interactive-web-terminals-for-the-web-ide'),
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/helpers/ide_helper.rb:106:42: C: Gitlab/DocumentationLinks/Link: The anchor #web-ide-configuration-file was not found in doc/user/project/web_ide/index.md.
      'web-terminal-config-help-path' => help_page_path('user/project/web_ide/index.md', anchor: 'web-ide-configuration-file'),
                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/helpers/ide_helper.rb:107:43: C: Gitlab/DocumentationLinks/Link: The anchor #runner-configuration was not found in doc/user/project/web_ide/index.md.
      'web-terminal-runners-help-path' => help_page_path('user/project/web_ide/index.md', anchor: 'runner-configuration')
                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/helpers/preferences_helper.rb:140:138: C: Gitlab/DocumentationLinks/Link: The anchor #sourcegraph was not found in doc/user/profile/preferences.md.
      views << { name: 'sourcegraph', message: sourcegraph_url_message, message_url: Gitlab::CurrentSettings.sourcegraph_url, help_link: help_page_path('user/profile/preferences.md', anchor: 'sourcegraph') } if Gitlab::Sourcegraph.feature_available? && Gitlab::CurrentSettings.sourcegraph_enabled
                                                                                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/helpers/projects_helper.rb:117:29: C: Gitlab/DocumentationLinks/Link: The anchor #what-happens-when-a-repository-path-changes was not found in doc/user/project/repository/index.md.
    link_to _('data loss'), help_page_path('user/project/repository/index.md', anchor: 'what-happens-when-a-repository-path-changes'), target: '_blank', rel: 'noopener'
                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/helpers/projects_helper.rb:428:34: C: Gitlab/DocumentationLinks/Link: The anchor #removing-objects-from-lfs was not found in doc/topics/git/lfs/index.md.
      lfsObjectsRemovalHelpPath: help_page_path('topics/git/lfs/index.md', anchor: 'removing-objects-from-lfs'),
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/helpers/projects_helper.rb:432:22: C: Gitlab/DocumentationLinks/Link: The anchor #gitlab-pages-access-control was not found in doc/user/project/pages/introduction.md.
      pagesHelpPath: help_page_path('user/project/pages/introduction.md', anchor: 'gitlab-pages-access-control'),
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/helpers/releases_helper.rb:16:5: C: Gitlab/DocumentationLinks/Link: help_page_path's first argument must be passed as a string so that Rubocop can ensure the linked file exists.
    help_page_path(DOCUMENTATION_PATH, anchor: anchor)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/integration.rb:769:7: C: Gitlab/DocumentationLinks/Link: help_page_path's first argument must be passed as a string so that Rubocop can ensure the linked file exists.
      Rails.application.routes.url_helpers.help_page_url(url_path, **options),
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/presenters/clusters/cluster_presenter.rb:62:31: C: Gitlab/DocumentationLinks/Link: This file does not exist: doc/user/infrastructure/clusters/manage/clusters_health.md.
        'documentation-path': help_page_path('user/infrastructure/clusters/manage/clusters_health.md'),
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/presenters/dev_ops_report/metric_presenter.rb:78:17: C: Gitlab/DocumentationLinks/Link: This file does not exist: doc/user/project/integrations/prometheus.md.
          docs: help_page_path('user/project/integrations/prometheus.md')
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/serializers/issue_entity.rb:80:5: C: Gitlab/DocumentationLinks/Link: The anchor #prevent-comments-by-locking-an-issue was not found in doc/user/discussions/index.md.
    help_page_path('user/discussions/index.md', anchor: 'prevent-comments-by-locking-an-issue')
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/serializers/issue_entity.rb:88:5: C: Gitlab/DocumentationLinks/Link: The anchor #archive-a-project was not found in doc/user/project/settings/index.md.
    help_page_path('user/project/settings/index.md', anchor: 'archive-a-project')
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/serializers/merge_request_noteable_entity.rb:59:5: C: Gitlab/DocumentationLinks/Link: The anchor #prevent-comments-by-locking-an-issue was not found in doc/user/discussions/index.md.
    help_page_path('user/discussions/index.md', anchor: 'prevent-comments-by-locking-an-issue')
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/serializers/merge_request_noteable_entity.rb:69:5: C: Gitlab/DocumentationLinks/Link: The anchor #archive-a-project was not found in doc/user/project/settings/index.md.
    help_page_path('user/project/settings/index.md', anchor: 'archive-a-project')
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/serializers/merge_request_widget_entity.rb:132:5: C: Gitlab/DocumentationLinks/Link: The anchor #view-security-scan-information-in-merge-requests was not found in doc/user/application_security/index.md.
    help_page_path('user/application_security/index.md', anchor: 'view-security-scan-information-in-merge-requests')
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ee/app/components/namespaces/combined_storage_users/base_alert_component.rb:101:20: C: Gitlab/DocumentationLinks/Link: The anchor #namespace-storage-limit was not found in doc/user/storage_usage_quotas.md.
        link_start(help_page_path('user/storage_usage_quotas.md', anchor: 'namespace-storage-limit'))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ee/app/components/namespaces/storage/limit_alert_component.rb:209:13: C: Gitlab/DocumentationLinks/Link: The anchor #manage-your-storage-usage was not found in doc/user/storage_usage_quotas.md.
            help_page_path('user/storage_usage_quotas.md', anchor: 'manage-your-storage-usage')
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ee/app/components/namespaces/storage/limit_alert_component.rb:213:13: C: Gitlab/DocumentationLinks/Link: The anchor #purchase-more-storage-and-transfer was not found in doc/subscriptions/gitlab_com/index.md.
            help_page_path('subscriptions/gitlab_com/index.md', anchor: 'purchase-more-storage-and-transfer')
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ee/app/components/namespaces/storage/pre_enforcement_alert_component.rb:40:9: C: Gitlab/DocumentationLinks/Link: The anchor #namespace-storage-limit was not found in doc/user/storage_usage_quotas.md.
        help_page_path('user/storage_usage_quotas.md', anchor: 'namespace-storage-limit')
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ee/app/components/namespaces/storage/pre_enforcement_alert_component.rb:44:9: C: Gitlab/DocumentationLinks/Link: The anchor #manage-your-storage-usage was not found in doc/user/storage_usage_quotas.md.
        help_page_path('user/storage_usage_quotas.md', anchor: 'manage-your-storage-usage')
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ee/app/components/namespaces/storage/repository_limit_alert_component.rb:74:13: C: Gitlab/DocumentationLinks/Link: The anchor #purchase-more-storage-and-transfer was not found in doc/subscriptions/gitlab_com/index.md.
            help_page_path('subscriptions/gitlab_com/index.md', anchor: 'purchase-more-storage-and-transfer')
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ee/app/controllers/gitlab_subscriptions/trials_controller.rb:123:19: C: [Correctable] Gitlab/DocumentationLinks/Link: Add .md extension to the link: subscriptions/subscription-add-ons.
              '', help_page_path('subscriptions/subscription-add-ons', anchor: 'assign-gitlab-duo-seats'),
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ee/app/helpers/billing_plans_helper.rb:127:21: C: Gitlab/DocumentationLinks/Link: The anchor #transfer-a-project-to-another-namespace was not found in doc/user/project/settings/index.md.
    move_link_url = help_page_path 'user/project/settings/index.md', anchor: "transfer-a-project-to-another-namespace"
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ee/app/helpers/ee/import_helper.rb:25:48: C: Gitlab/DocumentationLinks/Link: This file does not exist: doc/user/project/import/svn.md.
        svn_link = link_to _('this document'), help_page_path('user/project/import/svn.md')
                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ee/app/helpers/projects/security/api_fuzzing_configuration_helper.rb:10:54: C: Gitlab/DocumentationLinks/Link: The anchor #authentication was not found in doc/user/application_security/api_fuzzing/index.md.
      api_fuzzing_authentication_documentation_path: help_page_path('user/application_security/api_fuzzing/index.md', anchor: 'authentication'),
                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ee/app/helpers/vulnerabilities_helper.rb:32:33: C: Gitlab/DocumentationLinks/Link: This file does not exist: doc/user/application_security/vulnerabilities.md.
      related_issues_help_path: help_page_path('user/application_security/vulnerabilities.md', anchor: 'linking-a-vulnerability-to-issues'),
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ee/app/helpers/vulnerabilities_helper.rb:36:33: C: Gitlab/DocumentationLinks/Link: This file does not exist: doc/user/project/settings.md.
      issue_tracking_help_path: help_page_path('user/project/settings.md', anchor: 'sharing-and-permissions'),
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ee/app/models/integrations/github.rb:57:9: C: Gitlab/DocumentationLinks/Link: This file does not exist: doc/user/project/repository/repository_mirroring.md.
        Rails.application.routes.url_helpers.help_page_url('user/project/repository/repository_mirroring.md')
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ee/app/presenters/ee/merge_request_presenter.rb:31:7: C: Gitlab/DocumentationLinks/Link: The anchor #immediately-merge-a-merge-request-with-a-merge-train was not found in doc/ci/pipelines/merge_trains.md.
      help_page_path('ci/pipelines/merge_trains.md', anchor: 'immediately-merge-a-merge-request-with-a-merge-train')
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ee/lib/api/managed_licenses.rb:22:21: C: Gitlab/DocumentationLinks/Link: This file does not exist: doc/ee/user/compliance/license_approval_policies.md.
        docs_page = Rails.application.routes.url_helpers.help_page_url( ...
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ee/lib/api/member_roles.rb:91:21: C: Gitlab/DocumentationLinks/Link: This file does not exist: doc/ee/update/deprecations.md.
        docs_page = Rails.application.routes.url_helpers.help_page_url( ...
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ee/lib/gitlab/llm/chain/tools/tool.rb:149:74: C: Gitlab/DocumentationLinks/Link: This file does not exist: doc/ee/user/gitlab_duo_chat_examples.md.
              [View a list of questions and the related subscriptions](#{::Gitlab::Routing.url_helpers.help_page_url('ee/user/gitlab_duo_chat_examples.md')}).
                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ee/lib/system_check/geo/current_node_check.rb:22:20: C: Gitlab/DocumentationLinks/Link: This file does not exist: doc/administration/geo/replication/troubleshooting.md.
        docs_url = Rails.application.routes.url_helpers.help_page_url( ...
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ee/spec/components/namespaces/storage/pre_enforcement_alert_component_spec.rb:188:17: C: Gitlab/DocumentationLinks/Link: The anchor #namespace-storage-limit was not found in doc/user/storage_usage_quotas.md.
          href: help_page_path( ...
                ^^^^^^^^^^^^^^^
ee/spec/components/namespaces/storage/pre_enforcement_alert_component_spec.rb:200:17: C: Gitlab/DocumentationLinks/Link: The anchor #manage-your-storage-usage was not found in doc/user/storage_usage_quotas.md.
          href: help_page_path( ...
                ^^^^^^^^^^^^^^^
ee/spec/helpers/ee/projects/security/api_fuzzing_configuration_helper_spec.rb:13:57: C: Gitlab/DocumentationLinks/Link: The anchor #authentication was not found in doc/user/application_security/api_fuzzing/index.md.
  let(:api_fuzzing_authentication_documentation_path) { help_page_path('user/application_security/api_fuzzing/index.md', anchor: 'authentication') }
                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ee/spec/lib/gitlab/llm/embeddings/utils/base_content_parser_spec.rb:193:16: C: [Correctable] Gitlab/DocumentationLinks/Link: Add .md extension to the link: path/to/file.
        .to eq(::Gitlab::Routing.url_helpers.help_page_url('path/to/file'))
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ee/spec/requests/api/member_roles_spec.rb:93:9: C: Gitlab/DocumentationLinks/Link: This file does not exist: doc/ee/update/deprecations.md.
        Rails.application.routes.url_helpers.help_page_url('ee/update/deprecations.md', ...
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/backup/tasks/database.rb:21:11: C: Gitlab/DocumentationLinks/Link: This file does not exist: doc/raketasks/backup_restore.md.
        #{help_page_url('raketasks/backup_restore.md', 'restore-for-omnibus-gitlab-installations')}
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/gitlab/security/features.rb:143:24: C: Gitlab/DocumentationLinks/Link: This file does not exist: doc/user/application_security/breach_and_attack_simulation/index.md.
            help_path: Gitlab::Routing.url_helpers.help_page_path( ...
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/gitlab/security/features.rb:146:40: C: Gitlab/DocumentationLinks/Link: This file does not exist: doc/user/application_security/breach_and_attack_simulation/index.md.
              configuration_help_path: Gitlab::Routing.url_helpers.help_page_path( ...
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/gitlab/usage_data_counters/hll_redis_counter.rb:153:20: C: Gitlab/DocumentationLinks/Link: This file does not exist: doc/ee/development/internal_analytics/internal_event_instrumentation/migration.md.
            link = Rails.application.routes.url_helpers.help_page_url('ee/development/internal_analytics/internal_event_instrumentation/migration.md#backend-1')
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/slack/block_kit/app_home_opened.rb:61:31: C: Gitlab/DocumentationLinks/Link: This file does not exist: doc/integration/slash_commands.md.
            startMarkup: " <#{help_page_url('integration/slash_commands.md')}|",
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/slack/block_kit/app_home_opened.rb:81:30: C: Gitlab/DocumentationLinks/Link: The anchor #configuration was not found in doc/user/project/integrations/gitlab_slack_application.md.
            startMarkup: "<#{help_page_url('user/project/integrations/gitlab_slack_application.md', ...
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/slack/block_kit/app_home_opened.rb:102:30: C: Gitlab/DocumentationLinks/Link: The anchor #usage was not found in doc/user/project/integrations/gitlab_slack_application.md.
            startMarkup: "<#{help_page_url('user/project/integrations/gitlab_slack_application.md', anchor: 'usage')}|",
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/users/internal.rb:49:27: C: Gitlab/DocumentationLinks/Link: This file does not exist: doc/user/application_security/security_bot/index.md.
          u.website_url = Gitlab::Routing.url_helpers.help_page_url('user/application_security/security_bot/index.md')
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/helpers/ci/pipeline_editor_helper_spec.rb:34:38: C: Gitlab/DocumentationLinks/Link: This file does not exist: doc/ci/troubleshooting.md.
        "ci-troubleshooting-path" => help_page_path('ci/troubleshooting.md', anchor: 'common-cicd-issues'),
                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/helpers/ci/pipeline_editor_helper_spec.rb:39:34: C: Gitlab/DocumentationLinks/Link: The anchor #check-cicd-syntax was not found in doc/ci/lint.md.
        "lint-help-page-path" => help_page_path('ci/lint.md', anchor: 'check-cicd-syntax'),
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/helpers/ide_helper_spec.rb:71:13: C: Gitlab/DocumentationLinks/Link: The anchor #vscode-reimplementation was not found in doc/user/project/web_ide/index.md.
            help_page_path('user/project/web_ide/index.md', anchor: 'vscode-reimplementation'),
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spec/presenters/clusters/cluster_presenter_spec.rb:124:33: C: Gitlab/DocumentationLinks/Link: This file does not exist: doc/user/infrastructure/clusters/manage/clusters_health.md.
          'documentation-path': help_page_path('user/infrastructure/clusters/manage/clusters_health.md'),
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Other links/references

Edited by Marcel Amirault