Skip to content

Exclude broken external URLs from markdown link checker#2495

Merged
justin808 merged 1 commit intomasterfrom
jg/fix-markdown-link-checker
Feb 27, 2026
Merged

Exclude broken external URLs from markdown link checker#2495
justin808 merged 1 commit intomasterfrom
jg/fix-markdown-link-checker

Conversation

@justin808
Copy link
Copy Markdown
Member

@justin808 justin808 commented Feb 27, 2026

Summary

  • Exclude 4 external URLs that have been causing the markdown link checker CI job to fail on every single run
  • solargraph.org — SSL HandshakeFailure
  • coveralls.io — Returns 503 for automated requests
  • shakacode.controlplane.com — Connection refused from CI
  • storybook.js.org — Intermittent connection resets from CI

These follow the existing pattern in .lychee.toml for excluding unreliable external sites that are not under our control.

Test plan

  • Verify the markdown link checker CI job passes after merge
  • Confirm no legitimate link breakage is being masked (all 4 URLs are third-party sites with known CI-unfriendly behavior)

🤖 Generated with Claude Code


Note

Low Risk
Low risk config-only change; the main downside is potentially masking future breakage for the newly excluded third-party domains.

Overview
Updates .lychee.toml to expand the Lychee exclude list with several CI-unreliable third-party domains (SSL handshake failure, 503s, connection refused, intermittent resets) so the markdown link checker workflow stops failing on those external URLs.

Also tweaks/clarifies comment grouping (e.g., badge/CI services and 5xx from CI) to reflect the broader set of excluded sites.

Written by Cursor Bugbot for commit 526ac0c. Configure here.

Summary by CodeRabbit

  • Chores
    • Updated link validation configuration to exclude additional services from checks, including coveralls.io, shakacode.controlplane.com, and storybook.js.org.
    • Reorganized service categorization headers for improved clarity in configuration.

The lychee link checker CI job has been failing on every run due to
4 external URLs that are consistently unreachable from CI:

- solargraph.org: SSL HandshakeFailure
- coveralls.io: Returns 503 for automated requests
- shakacode.controlplane.com: Connection refused from CI
- storybook.js.org: Intermittent connection resets from CI

Add these to the .lychee.toml exclude list, following the existing
pattern for unreliable external sites.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Feb 27, 2026

Walkthrough

Configuration updates to .lychee.toml that enhance link-checking exclusion rules. Adds new SSL and CI-related site exclusions, renames section headers to better reflect their scope, and adjusts coverage-related failure codes.

Changes

Cohort / File(s) Summary
Configuration Updates
.lychee.toml
Adds SSL HandshakeFailure exclusion for solargraph.org, includes coveralls.io with 503 errors, and expands CI exclusions (shakacode.controlplane.com, storybook.js.org). Updates section headers from "BADGE SERVICES" to "BADGE AND CI SERVICES" and "504 FROM CI" to "5xx FROM CI".

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

🐰 Hoppy times with configs true,
Exclusions list gets quite a few,
SSL slips and CI threads,
Five-hundred errors in the spreads,
A rabbit's cheer—the links now flow!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: adding URL exclusions to the markdown link checker configuration to prevent CI failures.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch jg/fix-markdown-link-checker

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented Feb 27, 2026

Greptile Summary

Adds four external URLs to Lychee's exclusion list to prevent false positives in CI:

  • solargraph.org (SSL HandshakeFailure)
  • coveralls.io (503 responses)
  • shakacode.controlplane.com (connection refused)
  • storybook.js.org (intermittent connection resets)

Also updates section comments for clarity ("BADGE AND CI SERVICES" and "SITES THAT RETURN 5xx FROM CI"). All exclusions follow existing patterns for unreliable external sites. The regex patterns are correctly formatted with escaped dots.

Confidence Score: 5/5

  • This PR is safe to merge with minimal risk
  • Config-only change adding URL exclusions for external sites with documented CI failures. Regex patterns are correct, categorization is appropriate, and this follows established patterns in the file. No functional logic changes.
  • No files require special attention

Important Files Changed

Filename Overview
.lychee.toml Adds four CI-unreliable third-party URLs to exclusion list with appropriate categorization and updated section comments

Last reviewed commit: 526ac0c

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
.lychee.toml (1)

55-62: Optional hardening: www variants are not currently used in documentation.

The verification shows no www-prefixed variants of coveralls.io or storybook.js.org appear in any markdown files. The documentation exclusively uses non-www URLs. While adding optional www matching would be defensive hardening to future-proof against doc changes, it is not necessary to prevent current failures.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.lychee.toml around lines 55 - 62, Update the host-blocking regexes to
optionally match "www" variants so future docs using www are also covered:
modify the existing patterns '^https://coveralls\.io' and
'^https://storybook\.js\.org' (and any similar entries like
'^https://reactrails\.com' or '^https://shakacode\.controlplane\.com' if
desired) to allow an optional "www." prefix (e.g., using a non-capturing
optional group like (?:www\.)?), or add separate '^https://www\.…' entries next
to the current ones; ensure the changed strings in .lychee.toml replace or
supplement the exact regex literals shown in the diff.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In @.lychee.toml:
- Around line 55-62: Update the host-blocking regexes to optionally match "www"
variants so future docs using www are also covered: modify the existing patterns
'^https://coveralls\.io' and '^https://storybook\.js\.org' (and any similar
entries like '^https://reactrails\.com' or
'^https://shakacode\.controlplane\.com' if desired) to allow an optional "www."
prefix (e.g., using a non-capturing optional group like (?:www\.)?), or add
separate '^https://www\.…' entries next to the current ones; ensure the changed
strings in .lychee.toml replace or supplement the exact regex literals shown in
the diff.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8d201b8 and 526ac0c.

📒 Files selected for processing (1)
  • .lychee.toml

@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Feb 27, 2026

Review: Exclude Broken External URLs from Markdown Link Checker

Overall: LGTM — clean, low-risk config change following established patterns.

Verified

  • All 4 newly excluded domains are actually referenced in the codebase (README.md, docs/contributor-info/rbs-type-signatures.md, docs/migrating/angular-js-integration-migration.md), so no dead documentation is being silently hidden.
  • Regex patterns use anchors (^) and proper escaping — consistent with existing entries.
  • The daily scheduled job (cron: '0 3 * * *') means any future breakage of these links will still be detected if they ever start behaving (because cached results expire in 1d).

Minor Nit

The section heading was updated from "SITES THAT RETURN 504 FROM CI" to "SITES THAT RETURN 5xx FROM CI", but neither of the two new entries actually produce an HTTP 5xx response:

  • shakacode.controlplane.com → Connection refused (TCP-level failure, no HTTP response at all)
  • storybook.js.org → Connection reset (also TCP-level)

A more accurate heading would be something like "SITES UNRELIABLE FROM CI" or "SITES WITH CI CONNECTIVITY ISSUES". Not blocking, but worth noting for future maintainability.

No security, performance, or correctness concerns.

Comment thread .lychee.toml

# ============================================================================
# SITES THAT RETURN 504 FROM CI
# SITES THAT RETURN 5xx FROM CI
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Minor: shakacode.controlplane.com (connection refused) and storybook.js.org (connection reset) don't actually return HTTP 5xx responses — these are TCP-level failures. The section heading is slightly inaccurate for these two new entries.

Consider renaming the section to something like SITES WITH CI CONNECTIVITY ISSUES or SITES UNRELIABLE FROM CI to cover both HTTP 5xx errors and TCP-level failures under one umbrella.

@justin808 justin808 merged commit 11034a5 into master Feb 27, 2026
40 checks passed
@justin808 justin808 deleted the jg/fix-markdown-link-checker branch February 27, 2026 08:09
AbanoubGhadban pushed a commit that referenced this pull request Mar 7, 2026
## Summary

- Exclude 4 external URLs that have been causing the markdown link
checker CI job to fail on **every single run**
- `solargraph.org` — SSL HandshakeFailure
- `coveralls.io` — Returns 503 for automated requests
- `shakacode.controlplane.com` — Connection refused from CI
- `storybook.js.org` — Intermittent connection resets from CI

These follow the existing pattern in `.lychee.toml` for excluding
unreliable external sites that are not under our control.

## Test plan

- [ ] Verify the markdown link checker CI job passes after merge
- [ ] Confirm no legitimate link breakage is being masked (all 4 URLs
are third-party sites with known CI-unfriendly behavior)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Low risk config-only change; the main downside is potentially masking
future breakage for the newly excluded third-party domains.
> 
> **Overview**
> Updates `.lychee.toml` to expand the Lychee exclude list with several
CI-unreliable third-party domains (SSL handshake failure, 503s,
connection refused, intermittent resets) so the markdown link checker
workflow stops failing on those external URLs.
> 
> Also tweaks/clarifies comment grouping (e.g., **badge/CI services**
and **5xx from CI**) to reflect the broader set of excluded sites.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
526ac0c. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Updated link validation configuration to exclude additional services
from checks, including coveralls.io, shakacode.controlplane.com, and
storybook.js.org.
* Reorganized service categorization headers for improved clarity in
configuration.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: Claude Opus 4.6 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant