Validate and update links (STF-557)#189
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, ignoring its cache in .gitignore, and updating various documentation URLs across several markdown and Ruby files to their canonical or updated destinations. Feedback on the configuration suggests not ignoring 5xx server errors globally, as this can mask broken links, and instead relying on Lychee's built-in retry mechanism.
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 all 500..=599 status codes means that any link returning a server error (such as 500 Internal Server Error, 502 Bad Gateway, or 504 Gateway Timeout) will be treated as valid and won't be caught by the link checker. This can hide permanently broken links or dead servers.\n\nTo handle transient network or server issues without ignoring all server errors, it is recommended to rely on Lychee's built-in retry mechanism (e.g., setting retry = true or max_retries) instead of accepting 5xx status codes globally.
| 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)
7dcd303 to
189ab9e
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 redirected elsewhere: - dev.maxmind.com/geoip/docs/web-services -> .../web-services/ (canonical trailing slash) - dev.maxmind.com/geoip/docs/databases -> .../databases/ (canonical trailing slash) - 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>
Resolves zizmor ref-version-mismatch warnings on hash-pinned actions whose version comments omitted the leading v (the pinned commits already match the corresponding vX.Y.Z tags). Comment-only change. Part of STF-557. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds a lychee link checker configuration and a Links GitHub Actions workflow (push, pull request, weekly schedule, and manual dispatch) so stale or redirecting links are caught automatically going forward.
max_redirectsis 0 so moved links surface and can be updated to their canonical destination.Validated all links with lychee and updated those that redirected elsewhere:
https://dev.maxmind.com/geoip/docs/web-services->https://dev.maxmind.com/geoip/docs/web-services/(CLAUDE.md)https://dev.maxmind.com/geoip/docs/web-services?lang=en->https://dev.maxmind.com/geoip/docs/web-services/?lang=en(README.md, lib/maxmind/geoip2/client.rb, lib/maxmind/geoip2/model/city.rb, lib/maxmind/geoip2/model/enterprise.rb, lib/maxmind/geoip2/model/insights.rb)https://dev.maxmind.com/geoip/docs/databases?lang=en->https://dev.maxmind.com/geoip/docs/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, 2 occurrences)Historical CHANGELOG.md entries are intentionally left unchanged (excluded from scanning).
Final lychee run: 34 Total, 28 OK, 0 Errors, 6 Excluded. RuboCop passes on all edited Ruby files.
Part of STF-557.
🤖 Generated with Claude Code