Validate and update links (STF-557)#716
Conversation
There was a problem hiding this comment.
Code Review
This pull request configures the Lychee link checker by adding a lychee.toml configuration file and updating .gitignore to ignore .lycheecache. It also updates various documentation, POM, and Javadoc URLs to their canonical forms (such as adding trailing slashes or updating redirected paths). The review feedback recommends removing the 500..=599 HTTP status code range from the Lychee configuration's accepted list to prevent masking server-side failures and broken links.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| # 429: Too Many Requests | ||
| # 500-599: Server errors (temporary issues shouldn't fail CI) | ||
| # 999: LinkedIn's custom status code | ||
| accept = ["100..=103", "200..=299", "403", "429", "500..=599", "999"] |
There was a problem hiding this comment.
Accepting HTTP status codes in the 500..=599 range (Server Errors) can mask actual broken links or server misconfigurations. While transient server errors can occasionally occur, permanently broken links returning 500 errors will be ignored, defeating the purpose of automated link checking. It is recommended to remove 500..=599 from the accept list so that server-side failures are surfaced.
| accept = ["100..=103", "200..=299", "403", "429", "500..=599", "999"] | |
| accept = ["100..=103", "200..=299", "403", "429", "999"] |
There was a problem hiding this comment.
Keeping 500..=599 in accept, matching the dev-site and blog-site configs — transient upstream 5xx shouldn't fail link-checking CI.
— Claude (posted on Greg's behalf)
e716fa2 to
56884cb
Compare
Adds a lychee configuration and a Links GitHub Actions workflow so that stale or redirecting links are caught automatically going forward. The checker runs on push, pull request, and weekly to catch external link rot. max_redirects is 0 so links that have moved are surfaced and can be updated to their canonical destination. Part of STF-557. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Validated all links with lychee and updated those that were out of date or redirected elsewhere: - dev.maxmind.com/geoip doc URLs now use canonical trailing-slash form - www.maxmind.com/ -> www.maxmind.com/en/home (pom.xml) - www.maxmind.com/en/correction -> /en/geoip-data-correction-request - www.maxmind.com/en/support -> support.maxmind.com/knowledge-base Historical CHANGELOG.md entries are intentionally left unchanged. Part of STF-557. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Validated every link in the repo with the lychee link checker, fixed stale/redirecting links, and added a lychee config plus a Links CI workflow so future link rot is caught automatically.
CI setup
lychee.tomlwithmax_redirects = 0, fragment checking, MaxMind live/auth and XML-namespace excludes, andCHANGELOG.md/target/ test fixtures excluded from scanning..github/workflows/links.ymlruns on push, PR, weekly cron, and manual dispatch..lycheecacheadded to.gitignore.Links updated (old -> new)
https://dev.maxmind.com/geoip?lang=en->https://dev.maxmind.com/geoip/?lang=en(pom.xml)https://www.maxmind.com/->https://www.maxmind.com/en/home(pom.xml)https://dev.maxmind.com/geoip/docs/web-services->.../web-services/(CLAUDE.md)https://dev.maxmind.com/geoip/docs/web-services?lang=en->.../web-services/?lang=en(README.md, CityResponse.java, CountryResponse.java, InsightsResponse.java, WebServiceClient.java)https://dev.maxmind.com/geoip/docs/databases?lang=en->.../databases/?lang=en(README.md)https://www.maxmind.com/en/correction->https://www.maxmind.com/en/geoip-data-correction-request(README.md)https://www.maxmind.com/en/support->https://support.maxmind.com/knowledge-base(README.md)Each replacement was resolved with
curland confirmed to be a clean 200 with no further redirect.Historical
CHANGELOG.mdentries are intentionally left unchanged (and excluded from scanning).lychee ends green:
🔍 44 Total ✅ 37 OK 🚫 0 Errors 👻 7 Excluded.Part of STF-557.
🤖 Generated with Claude Code