11# WHY: Configures Lychee link checker behavior for CI/CD
2- # OBS: Reusable defaults; user agent set in workflow via GitHub context
3- # REQ: Keep this file if using Lychee link action in GitHub workflows
2+ # OBS: Flat structure required by lychee v0.22+; no nested sections
43
54# WHY: Control verbosity and CI-friendly output
6- [display ]
7- verbose = " info" # WHY: Balance between detail and noise
8- no_progress = true # WHY: Progress bars don't work well in CI logs
5+ verbose = " info" # WHY: Balance between detail and noise
6+ no_progress = true # WHY: Progress bars don't work well in CI logs
97
108# WHY: Performance tuning for link checking
11- [runtime ]
12- max_concurrency = 6 # WHY: Parallel requests without overwhelming servers
13- max_retries = 3 # WHY: Retry flaky connections before failing
14- retry_wait_time = 8 # WHY: Wait 8 seconds between retries
15- timeout = 30 # WHY: 30 seconds per request before timeout
9+ max_concurrency = 6 # WHY: Parallel requests without overwhelming servers
10+ max_retries = 3 # WHY: Retry flaky connections before failing
11+ retry_wait_time = 8 # WHY: Wait 8 seconds between retries
12+ timeout = 30 # WHY: 30 seconds per request before timeout
1613
17- # WHY: HTTP request configuration
18- [requests ]
1914# WHY: Accept common status codes that don't indicate broken links
20- # OBS: 403 and 429 reduce false positives; see note in README/workflow if desired
15+ # OBS: 403 and 429 reduce false positives
2116accept = [
22- " 200" , # OK
23- " 206" , # Partial content
24- " 301" , # Moved permanently
25- " 302" , # Found (temporary redirect)
26- " 307" , # Temporary redirect
27- " 308" , # Permanent redirect
28- " 403" , # Forbidden (often false positive)
29- " 429" , # Too many requests (rate limiting)
30- " 503" , # Service unavailable (temporary)
17+ 200 , # OK
18+ 206 , # Partial content
19+ 301 , # Moved permanently
20+ 302 , # Found (temporary redirect)
21+ 307 , # Temporary redirect
22+ 308 , # Permanent redirect
23+ 403 , # Forbidden (often false positive)
24+ 429 , # Too many requests (rate limiting)
25+ 503 , # Service unavailable (temporary)
3126]
3227
3328# WHY: Exclude patterns that shouldn't be checked
34- [exclusions ]
3529exclude = [
36- " example\\ .com" , # WHY: Exclude example domains in documentation
37- " localhost" , # WHY: Exclude local development URLs
38- " 127\\ .0\\ .0\\ .1" , # WHY: Exclude local loopback
39- " \\ .local" , # WHY: Exclude local network domains
40- ]
30+ " example\\ .com" , # WHY: Exclude example domains in documentation
31+ " localhost" , # WHY: Exclude local development URLs
32+ " 127\\ .0\\ .0\\ .1" , # WHY: Exclude local loopback
33+ " \\ .local" , # WHY: Exclude local network domains
34+ ]
0 commit comments