Skip to content

Validate and update links (STF-557)#1712

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

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

Conversation

@oschwald
Copy link
Copy Markdown
Member

@oschwald oschwald commented Jun 4, 2026

Validated all links across Markdown, TypeScript sources, and package.json
with lychee and updated those that were out of
date or redirecting to a canonical destination.

CI setup

  • Add lychee.toml (Node/TS tuned: scans ./**/*.md, ./src/**/*.ts,
    ./package.json; max_redirects = 0; excludes generated output and
    CHANGELOG.md).
  • Add .github/workflows/links.yml (runs on push, PR, weekly schedule, and
    manual dispatch).
  • Ignore .lycheecache.

Link fixes

File Old New
README.md https://dev.maxmind.com/geoip/docs/databases https://dev.maxmind.com/geoip/docs/databases/
README.md https://dev.maxmind.com/geoip/docs/web-services https://dev.maxmind.com/geoip/docs/web-services/
README.md (x2) https://support.maxmind.com/hc/en-us/requests/new https://support.maxmind.com/knowledge-base/submit-a-support-request
CLAUDE.md https://dev.maxmind.com/geoip/docs/web-services https://dev.maxmind.com/geoip/docs/web-services/
README.dev.md https://npmjs.com/package/@maxmind/geoip2-node https://www.npmjs.com/package/@maxmind/geoip2-node

Not changed

  • package.json repository.url (https://github.com/maxmind/GeoIP2-node.git)
    301s to the web UI but is the canonical npm git clone URL, so it is left as-is
    and excluded in lychee.toml.
  • CHANGELOG.md historical entries are intentionally left unchanged (excluded).

Final lychee result: 25 Total, 22 OK, 0 Errors, 3 Excluded.

Part of STF-557.

🤖 Generated with Claude Code

Comment thread .github/workflows/links.yml Fixed
Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request configures the Lychee link checker by adding a lychee.toml configuration file, ignoring .lycheecache in .gitignore, and updating several outdated or redirected URLs across the documentation files (CLAUDE.md, README.dev.md, and README.md). The review feedback suggests improving the Lychee configuration by removing 5xx status codes from the accepted list to avoid masking broken links, and adding a start anchor to the login URL pattern for consistency.

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.

Comment thread lychee.toml
# 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"]
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Accepting all 5xx status codes (500..=599) globally can mask permanently broken links or server misconfigurations. While this prevents transient server issues from failing the CI, it is generally better to handle transient errors using lychee's retry mechanism or by excluding specific flaky domains, rather than ignoring all server errors. Consider removing 500..=599 from the accepted status codes list.

Suggested change
accept = ["100..=103", "200..=299", "403", "429", "500..=599", "999"]
accept = ["100..=103", "200..=299", "403", "429", "999"]

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)

Comment thread lychee.toml
'^https://sandbox\.maxmind\.com',
'^https://updates\.maxmind\.com',
'^https://www\.maxmind\.com/en/accounts/',
'https://www\.maxmind\.com/en/account/login',
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

For consistency and precision, consider adding the start anchor ^ to the login URL pattern, matching the style used for other MaxMind endpoints in this list.

Suggested change
'https://www\.maxmind\.com/en/account/login',
'^https://www\\.maxmind\\.com/en/account/login',

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These exclude entries are matched against full URLs, so a leading ^ is effectively a no-op here. Left as-is to match the dev-site/blog-site config style.

— Claude (posted on Greg's behalf)

@oschwald oschwald force-pushed the greg/stf-557 branch 4 times, most recently from c0bf356 to b92e353 Compare June 4, 2026 20:36
oschwald and others added 2 commits June 4, 2026 22:01
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.

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:

- dev.maxmind.com/geoip/docs/web-services -> .../web-services/ (trailing slash)
- dev.maxmind.com/geoip/docs/databases -> .../databases/ (trailing slash)
- support.maxmind.com/hc/en-us/requests/new -> support.maxmind.com/knowledge-base/submit-a-support-request
- npmjs.com/package/@maxmind/geoip2-node -> www.npmjs.com/package/@maxmind/geoip2-node

The package.json repository.url (github.com/...GeoIP2-node.git) 301s to the
web UI but is the canonical npm git clone URL, so it is left unchanged and
excluded in lychee.toml instead. Historical CHANGELOG.md entries are
intentionally left unchanged.

Part of STF-557.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@horgh horgh merged commit 7d30a1b into main Jun 5, 2026
12 checks passed
@horgh horgh deleted the greg/stf-557 branch June 5, 2026 21:26
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.

3 participants