Skip to content

Validate and update links (STF-557)#1886

Open
oschwald wants to merge 2 commits into
mainfrom
greg/stf-557
Open

Validate and update links (STF-557)#1886
oschwald wants to merge 2 commits into
mainfrom
greg/stf-557

Conversation

@oschwald
Copy link
Copy Markdown
Member

@oschwald oschwald commented Jun 4, 2026

Adds a lychee link-checker configuration and a Links GitHub Actions workflow (runs on push, PR, and weekly) so stale or redirecting links are caught automatically going forward. lychee is pinned via mise (0.23.0), the single source of version truth for both local runs and CI; CI installs only lychee via jdx/mise-action with install: false.

The checker scans Markdown, TypeScript sources, and package.json, with max_redirects = 0 so moved links surface as failures and get updated to their canonical destinations. Generated output (node_modules, dist, build, coverage, docs) and the changelog are excluded.

Link updates (old -> new):

  • README.md: https://dev.maxmind.com/minfraud/api-documentation/responses?lang=en#errors -> https://dev.maxmind.com/minfraud/api-documentation/responses/?lang=en#errors (trailing slash before query; was a 308)
  • README.md: https://www.maxmind.com/en/support -> https://support.maxmind.com/knowledge-base (was a 302)
  • README.dev.md: https://npmjs.com/package/@maxmind/minfraud-api-node -> https://www.npmjs.com/package/@maxmind/minfraud-api-node (canonical www form)

False positives excluded in lychee.toml:

  • dev.maxmind.com/.../responses/#schema-- fragment links: the docs page is client-side rendered, so schema anchors are absent from the static HTML lychee fetches even though the page is 200 and the anchor exists in the browser.
  • http://google.com / www.foobar.com: placeholder referrer values in test fixtures, not real links.
  • Live/auth-gated MaxMind endpoints and the package.json git clone URL, consistent with the GeoIP2-node config.

Final lychee run: 12 OK, 0 Errors, 37 Excluded, 1 Unsupported (the unsupported entry is the git+https:// repository URL in package.json, which lychee cannot check by scheme).

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:00
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.

The config is tuned for this Node/TypeScript repo: it scans Markdown,
TypeScript sources, and package.json, and excludes generated output
(node_modules, dist, build, coverage, docs) and the changelog. lychee is
pinned via mise (0.23.0), which is the single source of version truth for
both local runs and CI.

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 to their canonical destinations:

- README.md: dev.maxmind.com/minfraud/api-documentation/responses?lang=en#errors
  -> .../responses/?lang=en#errors (trailing slash before query; was a 308)
- README.md: www.maxmind.com/en/support
  -> support.maxmind.com/knowledge-base (was a 302)
- README.dev.md: npmjs.com/package/@maxmind/minfraud-api-node
  -> www.npmjs.com/package/@maxmind/minfraud-api-node (canonical www form)

Also excluded a few false positives in lychee.toml:

- dev.maxmind.com/.../responses/#schema-- fragment links: the docs page is
  client-side rendered, so schema anchors are absent from the static HTML
  lychee fetches even though the page resolves 200 and the anchor exists in
  the browser.
- http://google.com and www.foobar.com: placeholder/example URLs used as
  referrer values in test fixtures, not real links.

The package.json repository.url (github.com/...minfraud-api-node.git) is the
canonical npm git clone URL and is left unchanged. Historical CHANGELOG.md
entries are intentionally left unchanged.

Part of STF-557.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.

1 participant