Skip to content

Fix broken external links found with automated link checking#424

Open
Copilot wants to merge 5 commits intocopilot/update-workflow-file-feedbackfrom
copilot/scan-for-broken-links
Open

Fix broken external links found with automated link checking#424
Copilot wants to merge 5 commits intocopilot/update-workflow-file-feedbackfrom
copilot/scan-for-broken-links

Conversation

Copy link
Contributor

Copilot AI commented Feb 5, 2026

Addresses broken external URLs across the documentation.

Broken link fixes (~150 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; reduced redirects where possible without forcing localization
  • 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/

Also fixes root-relative markdown links that docfx does not see (inadvertently broken in #363)

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

This comment was marked as outdated.

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
TimHess added a commit that referenced this pull request Feb 25, 2026
Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions
Copy link

github-actions bot commented Feb 25, 2026

External link checking results

Status Count
🔍 Total 1880
✅ Successful 927
⏳ Timeouts 0
🔀 Redirected 143
👻 Excluded 804
❓ Unknown 0
🚫 Errors 6
⛔ Unsupported 0

Errors per input

Errors in docs/docs/v2/connectors/mysql.md

Errors in docs/docs/v3/connectors/mysql.md

Errors in docs/docs/v4/connectors/mysql.md

Full Github Actions output

@TimHess TimHess force-pushed the copilot/scan-for-broken-links branch from b2a8e9f to 1d336d8 Compare February 25, 2026 15:28
@TimHess TimHess force-pushed the copilot/scan-for-broken-links branch from 1d336d8 to 0570e87 Compare February 25, 2026 20:37
@TimHess TimHess force-pushed the copilot/scan-for-broken-links branch from 0570e87 to 30baab7 Compare February 25, 2026 20:54
@TimHess TimHess requested a review from bart-vmware February 25, 2026 21:45
@TimHess TimHess force-pushed the copilot/scan-for-broken-links branch from 30baab7 to 18ceece Compare February 26, 2026 21:16
@TimHess TimHess changed the title Fix broken external links and add automated link checking Fix broken external links found with automated link checking Feb 26, 2026
### Configure connection string

The CosmosDB connection string can be obtained as described in the [Microsoft documentation](https://learn.microsoft.com/azure/cosmos-db/nosql/how-to-dotnet-get-started#retrieve-your-account-connection-string).
The CosmosDB connection string can be obtained as described in the [Microsoft documentation](https://learn.microsoft.com/azure/cosmos-db/how-to-dotnet-get-started). <!-- TODO: what page describes how to get connection strings now? not this one -->
Copy link
Member

Choose a reason for hiding this comment

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

@bart-vmware this one is tricky, I looked for a couple minutes, but it seems like they removed this approach for CosmosDb from the docs?

Copy link
Member

Choose a reason for hiding this comment

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

Yeah, the connection string parameters are mysteriously undocumented by Microsoft. The closest I could find is https://learn.microsoft.com/azure/service-connector/how-to-integrate-cosmos-sql#other-client-types-2. I think the replacement link should be: https://learn.microsoft.com/azure/static-web-apps/database-azure-cosmos-db#get-database-connection-string-for-local-development.

@TimHess TimHess force-pushed the copilot/scan-for-broken-links branch from 18ceece to 4563611 Compare February 26, 2026 21:50
TimHess
TimHess previously approved these changes Feb 26, 2026
Copilot AI and others added 5 commits February 27, 2026 13:14
- external links to
  - CredHub API, Spring AMQP, and Spring Cloud projects
  - Broadcom/Pivotal/samples/Microsoft
- CredHub/Samples/CircuitBreaker links
- Reduce external redirects
- Fix double 'the' in fileshares usage docs
- Disambiguate Redis/Valkey versions, clarify Thinktecture reference
- Fix 'n0t' typo in v3 fileshares docs
- TAS SSO→Single Sign-On

Co-authored-by: TimHess <3947063+TimHess@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
- redirect reductions for docs.microsoft.com and trailing slashes
- remove /en-US/ from mozilla links
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

3 participants