Skip to content

Linkguard v0.1.0

Latest

Choose a tag to compare

@ninepointlabs ninepointlabs released this 16 Oct 18:49
· 13 commits to main since this release
1b78bdf

First release of Linkguard: a free GitHub Action that checks outbound links in Jekyll, Hugo and folderblog sites, and looks up or creates Internet Archive Wayback Machine snapshots for them.

Usage

- uses: actions/checkout@v7
- uses: ninepointlabs/linkguard@v0.1.0

Complete workflows: Jekyll, Hugo, folderblog. The README documents every input and output.

What's in v0.1.0

  • Link extraction from markdown (inline links, images, reference definitions, autolinks) and HTML <a href>. Relative, mailto/tel, localhost and private-IP links are skipped, plus anything matching ignore-urls.
  • Polite link checks: HEAD with a GET fallback, 10 s timeout, 2 retries, Retry-After honoured, at most 4 requests in flight and 1 per host. Each link is reported as ok, moved, dead or blocked. Bot-blocks (401/403/999) are never called dead.
  • Lookup-only mode (default, no secrets): finds existing Wayback snapshots, and reports an archived URL for each dead link that has one.
  • Snapshot mode (with your own free Internet Archive keys as repo secrets): captures working links that have no recent snapshot. Paced to at most 6 captures a minute, limited by a configurable time budget, and stops on repeated rate limiting.
  • Reports: job summary table, annotations on dead links, JSON and markdown report files, and the outputs dead-count, checked-count, skipped-count and report-path. Report-only by default; set fail-on-dead to fail the step instead.
  • open-pr (opt-in): opens a pull request that replaces dead links with their archived copies. It never pushes to your default branch.
  • Free tier: 100 unique links per run. Links over the cap are skipped, and the log says how many.
  • Privacy: no telemetry. Only link URLs go to archive.org; file contents never leave the runner.

Known limits

  • Snapshot capture and open-pr are covered by mocked tests only so far. Please report problems in issues.
  • Internet Archive rate limits aren't published, and the availability API sometimes returns no snapshot for pages that have one.
  • Each scheduled run that finds replaceable dead links opens a new PR.