Resilient Link Checking for Nightly CI #1141
SeanTAllen
started this conversation in
Research
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Problem
The nightly link-checking job fails frequently due to transient external link failures (rate limiting, temporary outages, sites blocking CI bots). This makes the check unreliable — it cries wolf so often that real link rot gets ignored.
Internal and external links have very different reliability profiles, but the mkdocs tooling does not support splitting them into separate checks.
Proposed Approach: Failure Streak Tracking
Instead of failing on any broken link, track consecutive failures per URL and only alert when a link has been broken for N consecutive nightly runs (e.g., 3). This filters out transient failures while still catching genuine link rot.
Mechanism
Use a pinned GitHub issue as the persistence layer. The nightly job would:
gh apiTracking Data Format
{ "https://example.com/dead-page": { "consecutive_failures": 3, "first_failure": "2026-02-01", "last_failure": "2026-02-06" }, "https://flaky.com/page": { "consecutive_failures": 1, "first_failure": "2026-02-06", "last_failure": "2026-02-06" } }Why a Pinned Issue?
Alternatives considered:
Additional Improvements
Applies To
This approach would work for all ponylang repos with link checking:
Beta Was this translation helpful? Give feedback.
All reactions