Skip to content

Validate and update links (STF-557)#415

Merged
horgh merged 2 commits into
mainfrom
greg/stf-557
Jun 5, 2026
Merged

Validate and update links (STF-557)#415
horgh merged 2 commits into
mainfrom
greg/stf-557

Conversation

@oschwald

@oschwald oschwald commented Jun 4, 2026

Copy link
Copy Markdown
Member

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, accepts
    5xx/403/429/999, segment-anchored path excludes for bin/, obj/,
    .worktrees/, docs/public/, and releasenotes.md).
  • .github/workflows/links.yml — runs lychee on push/PR, weekly cron, and
    manual dispatch. Uses jdx/mise-action with install: false +
    MISE_AUTO_INSTALL: false so only lychee is installed (not the full .NET
    toolchain).
  • mise.toml — pins lychee = "0.23.0" and adds a check-links task. The
    per-platform mise.lock entries for lychee were populated via mise lock.
  • .lycheecache added 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

  • Unit-test/example placeholder hosts: www.maxmind.com root, 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 a
    single-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 --all passes.

Part of STF-557.

🤖 Generated with Claude Code

@gemini-code-assist

Copy link
Copy Markdown

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

oschwald and others added 2 commits June 4, 2026 22:01
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 horgh merged commit e18c1b2 into main Jun 5, 2026
18 checks passed
@horgh horgh deleted the greg/stf-557 branch June 5, 2026 21:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants