Validate and update links (STF-557)#415
Merged
Merged
Conversation
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
Part of STF-557. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- https://dev.maxmind.com/minfraud?lang=en -> https://dev.maxmind.com/minfraud/?lang=en (README.md, CLAUDE.md) - https://dev.maxmind.com/minfraud/report-a-transaction?lang=en -> .../report-a-transaction/?lang=en (README.md) - https://docs.microsoft.com/en-us/aspnet/core/fundamentals/http-requests?view=aspnetcore-3.1#typed-clients -> https://learn.microsoft.com/... (README.md) - https://www.maxmind.com/en/support -> https://support.maxmind.com/knowledge-base (README.md) - https://dev.maxmind.com/minfraud/track-devices?lang=en -> .../track-devices/?lang=en (Response/Device.cs) - https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en -> .../requests/?lang=en (Request/Transaction.cs) - https://dev.maxmind.com/minfraud/api-documentation/responses?lang=en#errors -> .../responses/?lang=en#errors (Exception/InvalidRequestException.cs) - https://dev.maxmind.com/minfraud/api-documentation/responses?lang=en#schema--response--warning -> .../responses/?lang=en#schema--response--warning (Response/Warning.cs) - https://www.maxmind.com/en/minfraud-interactive/#/custom-rules (404) -> https://www.maxmind.com/en/accounts/current/minfraud-interactive/custom-rules (Request/CustomInputs.cs) - https://docs.microsoft.com/en-us/dotnet/api/system.hashcode -> https://learn.microsoft.com/en-us/dotnet/api/system.hashcode?view=net-10.0 (UnitTest/JsonElementComparer.cs) - https://tools.ietf.org/html/rfc8259#section-4 -> https://datatracker.ietf.org/doc/html/rfc8259#section-4 (UnitTest/JsonElementComparer.cs) - https://stackoverflow.com/questions/60580743/what-is-equivalent-in-jtoken-deepequal-in-system-text-json -> .../deepequals-in-system-text-json (UnitTest/JsonElementComparer.cs) Also added lychee excludes for unit-test/example placeholder hosts (www.maxmind.com root, test.maxmind.com, www.mm.com, amazon.com) and for the client-side-rendered "#schema--" anchors on the dev.maxmind.com responses page that lychee cannot verify against the server HTML. Part of STF-557. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
horgh
approved these changes
Jun 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a lychee link checker config and CI workflow, and
fixes stale/redirecting links across the repo. Mirrors the setup landed in the
GeoIP2 client repos.
What's added
lychee.toml— shared link-checker config (max_redirects = 0, accepts5xx/403/429/999, segment-anchored path excludes forbin/,obj/,.worktrees/,docs/public/, andreleasenotes.md)..github/workflows/links.yml— runs lychee on push/PR, weekly cron, andmanual dispatch. Uses
jdx/mise-actionwithinstall: false+MISE_AUTO_INSTALL: falseso only lychee is installed (not the full .NETtoolchain).
mise.toml— pinslychee = "0.23.0"and adds acheck-linkstask. Theper-platform
mise.lockentries for lychee were populated viamise lock..lycheecacheadded to.gitignore.Links updated (old -> new)
https://dev.maxmind.com/minfraud?lang=en->https://dev.maxmind.com/minfraud/?lang=en(README.md, CLAUDE.md)https://dev.maxmind.com/minfraud/report-a-transaction?lang=en->.../report-a-transaction/?lang=en(README.md)https://docs.microsoft.com/.../http-requests?view=aspnetcore-3.1#typed-clients->https://learn.microsoft.com/...(README.md)https://www.maxmind.com/en/support->https://support.maxmind.com/knowledge-base(README.md)https://dev.maxmind.com/minfraud/track-devices?lang=en->.../track-devices/?lang=en(Response/Device.cs)https://dev.maxmind.com/minfraud/api-documentation/requests?lang=en->.../requests/?lang=en(Request/Transaction.cs)https://dev.maxmind.com/minfraud/api-documentation/responses?lang=en#errors->.../responses/?lang=en#errors(Exception/InvalidRequestException.cs)https://dev.maxmind.com/minfraud/api-documentation/responses?lang=en#schema--response--warning->.../responses/?lang=en#schema--response--warning(Response/Warning.cs)https://www.maxmind.com/en/minfraud-interactive/#/custom-rules(404) ->https://www.maxmind.com/en/accounts/current/minfraud-interactive/custom-rules(Request/CustomInputs.cs); matches the canonical URL used by the Java client.https://docs.microsoft.com/en-us/dotnet/api/system.hashcode->https://learn.microsoft.com/en-us/dotnet/api/system.hashcode?view=net-10.0(UnitTest/JsonElementComparer.cs)https://tools.ietf.org/html/rfc8259#section-4->https://datatracker.ietf.org/doc/html/rfc8259#section-4(UnitTest/JsonElementComparer.cs)https://stackoverflow.com/questions/60580743/...jtoken-deepequal...->...jtoken-deepequals...(UnitTest/JsonElementComparer.cs)Excluded as false positives
www.maxmind.comroot,test.maxmind.com,www.mm.com,amazon.com(test fixtures / README sample code, not navigable links).#schema--anchors on the dev.maxmind.com responses page: the docs site is asingle-page app, so those deep anchors are rendered client-side and aren't in
the server HTML — lychee can't verify the fragment even though the page (200)
and anchor are valid.
Verification
mise run check-links:75 Total, 36 OK, 0 Errors, 39 Excluded.precious lint --allpasses.Part of STF-557.
🤖 Generated with Claude Code