Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .eslintignore

This file was deleted.

14 changes: 0 additions & 14 deletions .eslintrc.json

This file was deleted.

25 changes: 25 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: CI

on:
push:
branches: [main, v2]
pull_request:

jobs:
test:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
node: [20, 22, 24]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: npm
- run: npm ci
- run: npm run lint
- run: npm run test:types
- run: npm test
21 changes: 0 additions & 21 deletions .travis.yml

This file was deleted.

45 changes: 45 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,50 @@
# check-http-status changelog

## 2.0.0 - Oct 2, 2026

### New

- Crawl a whole website (`crawl`) and report every link's status with the pages it was found on and the link text
- Command line tool: `npx check-http-status <url>` with `crawl` and `check` commands
- Include / exclude rules (substring, wildcard or regex). Excluded URLs are listed and checked, but not crawled
- External links are checked but never crawled
- Sitemap index (`<sitemapindex>`) and gzipped sitemap (`.xml.gz`) support
- Orphan page detection (pages in the sitemap that aren't linked from anywhere)
- Optional asset checks (images, scripts, stylesheets, icons, iframes)
- New report formats: interactive HTML and JSON; reports list every URL found once (URL, Found On, Redirect To, Status, …); Excel report has Summary, All URLs, Issues and External Links sheets
- `maxPages`, `maxDepth`, `concurrency`, `maxRedirects`, `subdomains`, `ignoreQuery`, `onProgress` options
- `--fail` flag to fail CI builds when broken links are found
- Upload reports to Google Drive (`--drive` / `googleDrive`), with Excel/CSV converted to Google Sheets; `drive-login` command; service account support for CI
- Upload reports to OneDrive (`--onedrive` / `oneDrive`), personal or work/school; `onedrive-login` command
- Public "anyone with the link" sharing for uploads (`--public`, `--drive-public`, `--onedrive-public`)
- Retries for 429/502/503/504 and dropped connections, honouring `Retry-After` (`retries`, `retryDelay`)
- `delay` between requests to the same site, and a custom `userAgent`
- For apps built on the library: `signal` (stop a crawl), `onResult` (live results), `recheck()` and `writeReport()`
- Optional robots.txt support (`--respect-robots` / `respectRobots`), including Crawl-delay
- Config file (`check-http-status.config.json` or `--config <file>`) with a JSON Schema; `loadConfig()` / `findConfig()`
- TypeScript type definitions
- Bot-protection challenges (Cloudflare, DataDome, Akamai, PerimeterX, Sucuri) are reported as `Blocked` instead of broken links
- The terminal lists issues even when reports are saved with `-o`
- `checkHttpStatus()` returns `{ summary, results }`

### Fixed

- Requests ran in batches of 10 that waited for the slowest request; now a worker pool keeps every slot busy
- Redirect loops caused infinite recursion
- Relative `Location` headers (e.g. `/new-page`) were reported as errors
- Sitemap index files crashed the sitemap reader
- Progress output crashed when stdout was not a terminal (CI, pipes)
- De-duplicating large sitemaps was O(n²)
- HTTP Basic auth credentials are no longer sent to external sites
- Export location no longer requires a trailing slash

### Breaking

- Requires Node.js 18.17+
- Throws errors instead of calling `process.exit()`
- Excel/CSV columns changed (one row per URL with its full redirect chain)
- Replaced `axios`, `columnify` and `xml2js` with built-in `fetch` and `cheerio`

## 1.3.0 - Oct 15, 2021

### Enhancement
Expand Down
Loading
Loading