Skip to content

Comments

Fix broken external links and add automated link checking#424

Open
Copilot wants to merge 19 commits intomainfrom
copilot/scan-for-broken-links
Open

Fix broken external links and add automated link checking#424
Copilot wants to merge 19 commits intomainfrom
copilot/scan-for-broken-links

Conversation

Copy link
Contributor

Copilot AI commented Feb 5, 2026

Addresses broken external URLs across the documentation. Adds a lychee-based link checker workflow that runs on PRs and posts results as a comment.

Link checker workflow (.github/workflows/check-links.yml)

  • Runs on PRs touching markdown files and on manual dispatch
  • Posts/updates a single PR comment with broken link report
  • Excludes docs/api/ (generated), docker:// URIs, localhost, and known-dead hostnames
  • Caching enabled, rate limiting via --max-concurrency 5 and --retry-wait-time 15

Broken link fixes (~100 files)

  • Broadcom TechDocs migrations: docs.pivotal.io and docs.vmware.com links updated to current techdocs.broadcom.com paths for Spring Cloud Services → Application Services, SSO, CredHub, MySQL, Postgres, RabbitMQ, Redis/Valkey, GemFire Native Client, Metric Registrar, Volume Services, CSB (AWS/Azure/GCP), Apps Manager
  • Microsoft: docs.microsoft.comlearn.microsoft.com, docs.asp.netlearn.microsoft.com, visualstudio.comvisualstudio.microsoft.com; removed /en-us/ locale prefixes and .html suffixes where they cause redirects
  • Spring: projects.spring.io/spring-cloudspring.io/projects/spring-cloud-*; trailing slash fixes
  • GitHub repo moves: spring-cloud-samples/hystrix-dashboardNetflix-Skunkworks/hystrix-dashboard, cf-platform-eng/mssql-server-brokercloudfoundry-attic/mssql-server-broker, cloudfoundry-incubatorcloudfoundry
  • CredHub API: credhub-api.cfapps.iodocs.cloudfoundry.org/api/credhub/version/main/ with corrected anchors (#_overwriting_credential_values, #_permissions)
  • Discontinued services: Hystrix Dashboard marked as deprecated (no longer available), Wavefront trial references removed, dead pivotal.io/platform-acceleration-lab links removed
  • Naming: "PCF" → "Tanzu Platform", "TAS Apps Manager" → "Apps Manager", "TAS SSO" / "TAS Single-Sign-on" → "Single Sign-On", "Azure Open Service Broker" → "Open Service Broker for Azure"
  • Misc: RabbitMQ docs path updates, tanzu.vmware.com/gemfirevmware.com/products/..., tanzu.vmware.com/observabilitybroadcom.com/products/..., hhttps typo, start.steeltoe.io/api/config//api/uiconfig/
Original prompt

This section details on the original issue you should resolve

<issue_title>Scan for broken links to external URLs</issue_title>
<issue_description>We should run a tool that recursively follows all the links and reports which ones are broken. And then correct or remove them.

For example, there are many links pointing to docs.pivotal.io, such as https://docs.pivotal.io/spring-cloud-services/1-5/common/circuit-breaker/, which today redirects to the generic Broadcom page at https://techdocs.broadcom.com/us/en/vmware-tanzu.html.</issue_description>

Comments on the Issue (you are @copilot in this section)

@bart-vmware Remaining _hard_ broken links after the fixes in #385 are listed in the table below. Note this does not include soft broken links, such as the one mentioned above.
URL Anchor Text Linked From
https://credhub-api.cfapps.io/ CredHub API [https...</comment_new>

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI changed the title [WIP] Scan for broken links to external URLs Add link checking and fix broken documentation references Feb 5, 2026
Copilot AI requested a review from TimHess February 5, 2026 15:10
@TimHess
Copy link
Member

TimHess commented Feb 19, 2026

@copilot this PR will merge after #426. Change the base branch and re-evaluate your changes, as some of the changes (eg: "Converted 30+ internal documentation links from .md to .html extension") do not align with how docfx works.

Additionally, when the workflow is run in the context of a PR, include a table of newly-broken links as a single comment on that PR that is updated on subsequent runs. Issues should only be created if the context was NOT a PR

@TimHess TimHess changed the base branch from main to copilot/setup-copilot-instructions February 19, 2026 21:10
Copy link
Contributor Author

Copilot AI commented Feb 19, 2026

@copilot this PR will merge after #426. Change the base branch and re-evaluate your changes, as some of the changes (eg: "Converted 30+ internal documentation links from .md to .html e...

Addressed in cf944da:

  • Reverted all .md.html internal link changes — docfx uses .md extensions per the conventions in Set up agent instructions #426.
  • Workflow updated: In PR context, broken links are posted as a single PR comment (updated on subsequent runs via message-id). Issues are only created outside PR context, and existing open issues with the same title are updated instead of duplicated.
  • External link fixes (CredHub API, Spring AMQP, Spring Cloud, Samples) are retained.

I can't change the base branch myself, but I see you've already done that.

@github-actions
Copy link

github-actions bot commented Feb 19, 2026

Summary

Status Count
🔍 Total 1754
✅ Successful 1695
⏳ Timeouts 0
🔀 Redirected 0
👻 Excluded 59
❓ Unknown 0
🚫 Errors 0
⛔ Unsupported 0
Full Github Actions output

Copy link
Contributor Author

Copilot AI commented Feb 19, 2026

Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • docs.cloudfoundry.org
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node /home/REDACTED/work/_temp/ghcca-node/node/bin/node --enable-source-maps /home/REDACTED/work/_temp/copilot-developer-action-main/dist/index.js (dns block)
  • techdocs.broadcom.com
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node /home/REDACTED/work/_temp/ghcca-node/node/bin/node --enable-source-maps /home/REDACTED/work/_temp/copilot-developer-action-main/dist/index.js (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI requested a review from TimHess February 19, 2026 21:38
Copy link
Member

@TimHess TimHess left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot update the check-links workflow to filter out links from the files in /docs/api. Read the output from the workflow in #424 (comment) and fix as many of those redirects as you can. Also check if there's an easy way to handle rate limiting and implement it if there is.

Copy link
Contributor Author

Copilot AI commented Feb 19, 2026

@copilot update the check-links workflow to filter out links from the files in /docs/api. Read the output from the workflow in #424 (comment)...

Done in 04a608b:

  • Workflow: Added --exclude-path 'docs/api' to skip generated API docs. Added --max-retries 6 and --retry-wait-time 30 for rate limiting.
  • Fixed redirects across 75 files:
    • docs.microsoft.comlearn.microsoft.com (61 files)
    • docs.asp.netlearn.microsoft.com (10 files)
    • tanzu.vmware.com/content/blogblogs.vmware.com/tanzu (5 files)
    • docs.pivotal.io/spring-cloud-services/ → Broadcom tech docs (11 occurrences)
    • Misc: dotnetfoundation.org, devblogs, cncf.io, techcommunity
  • Fixed hard 404s: kubernetes.io services path, thepollyproject.org → Polly GitHub, loggregator developmain branch
  • Removed dead pivotal.io/platform-acceleration-lab links (expired SSL, service discontinued)

Copilot AI requested a review from TimHess February 19, 2026 22:13
@TimHess
Copy link
Member

TimHess commented Feb 20, 2026

@copilot

Copy link
Contributor Author

Copilot AI commented Feb 20, 2026

@copilot

  • workflow updates
    • remove opening/managing an issue, lets stick with the output being a comment when run during PR or just job output when run manually
      ...

Done in 1b19072. Summary of changes:

Workflow:

  • Removed schedule trigger, issue creation/management
  • Removed start.steeltoe.io from ignore
  • Added excludes for fortuneservice, *.internal, consul-register-example
  • Set host-requests to 5, retry-wait-time to 15

Broadcom links:

  • Spring Cloud Services → vmware-tanzu/spring/application-services/3-3/appservices/
  • Tanzu MySQL → tanzu-mysql-tanzu-platform/3-3/mysql-tp/index.html
  • CSB GCP → cloud-service-broker-gcp/1-6/csb-gcp/installing-with-gcp.html
  • Cloud Foundry platform → tanzu-platform/10-3/about-tnz-platform/index.html
  • GemFire → tanzu-gemfire-native-client/10-4/gf-nc/dotnet-about-client-users-guide.html
  • All docs.pivotal.io (61 links) and docs.vmware.com links mapped to broadcom equivalents

Samples:

  • dev→2.x for AspDotNet4 links, fixed RedisDataProtectionKeyStore path
  • Removed FreddysBBQ links/references from v3 docs

Microsoft links:

  • Removed /en-us/ localization, dropped .html suffixes
  • Fixed trailing slash redirects (spring.io)

Regarding redirect filtering: The learn.microsoft.com locale redirects (/aspnet//en-us/aspnet/) are server-side auto-redirects. Lychee has no option to ignore only locale redirects without ignoring all redirects. We could add --exclude 'learn.microsoft.com' to skip them entirely, but then we'd miss actual broken Microsoft links. Since we already removed /en-us/ from all our links, the remaining noise is just the server adding it back. Happy to revisit if you'd like to try a different approach.

Base automatically changed from copilot/setup-copilot-instructions to main February 20, 2026 19:11
Copilot AI changed the title Add link checking and fix broken documentation references Add link checking workflow and fix broken external URLs Feb 20, 2026
Copilot AI and others added 13 commits February 20, 2026 16:03
…r links

Co-authored-by: TimHess <3947063+TimHess@users.noreply.github.com>
…across 75 files

Co-authored-by: TimHess <3947063+TimHess@users.noreply.github.com>
…soft links

Co-authored-by: TimHess <3947063+TimHess@users.noreply.github.com>
…ning broken links

Co-authored-by: TimHess <3947063+TimHess@users.noreply.github.com>
Co-authored-by: TimHess <3947063+TimHess@users.noreply.github.com>
…-link Apps Manager, reduce redirect noise

Co-authored-by: TimHess <3947063+TimHess@users.noreply.github.com>
Co-authored-by: TimHess <3947063+TimHess@users.noreply.github.com>
…Hub repos, trailing slashes, dead links

Co-authored-by: TimHess <3947063+TimHess@users.noreply.github.com>
…ture reference

Co-authored-by: TimHess <3947063+TimHess@users.noreply.github.com>
…/versioning per review

Co-authored-by: TimHess <3947063+TimHess@users.noreply.github.com>
Co-authored-by: TimHess <3947063+TimHess@users.noreply.github.com>
… base branch)

Co-authored-by: TimHess <3947063+TimHess@users.noreply.github.com>
Co-authored-by: TimHess <3947063+TimHess@users.noreply.github.com>
…inks in checker

Co-authored-by: TimHess <3947063+TimHess@users.noreply.github.com>
Copilot AI changed the title Fix broken external links and add automated link checking Add link checker workflow and fix broken external URLs Feb 20, 2026
@github-actions
Copy link

Preview link: https://www-steeltoe-pr-424.azurewebsites.net

  • Your changes have been deployed to the preview site. The preview site will update as you add more commits to this branch.
  • The preview link is shareable, but will be deleted when the pull request is merged or closed.

This is an automated message.

…Sign-On, restore Metric Registrar link, always post PR comment

Co-authored-by: TimHess <3947063+TimHess@users.noreply.github.com>
Copilot AI changed the title Add link checker workflow and fix broken external URLs Add link checker workflow and fix ~300 broken/redirecting external URLs Feb 20, 2026
Co-authored-by: TimHess <3947063+TimHess@users.noreply.github.com>
Copilot AI changed the title Add link checker workflow and fix ~300 broken/redirecting external URLs Fix broken external links and add automated link checking Feb 20, 2026
@TimHess TimHess marked this pull request as ready for review February 20, 2026 23:04
@TimHess TimHess requested a review from bart-vmware February 20, 2026 23:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Scan for broken links to external URLs

2 participants