-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathlychee.toml
More file actions
74 lines (60 loc) · 3.04 KB
/
Copy pathlychee.toml
File metadata and controls
74 lines (60 loc) · 3.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# Lychee external link checker configuration
# Docs: https://lychee.cli.rs/usage/configuration/
# Only check http/https URLs — skips mailto:, file://, etc.
scheme = ["https", "http"]
# Resolve root-relative links (e.g. /img/..., /page/...) against the live docs
# base URL. Combined with the tyk.io exclude rule below, these get silently
# skipped rather than erroring as "cannot convert path to URI".
base_url = "https://tyk.io"
# Only check external URLs — internal links are validated by validate-docs.yml
exclude = [
# Tyk-owned domains (covers root-relative paths resolved via base above)
"https?://(.*\\.)?tyk\\.io",
"https?://(.*\\.)?tyktech\\.net",
# Localhost / private addresses
"https?://localhost",
"https?://127\\.0\\.0\\.1",
# Placeholder / example URLs
"https?://example\\.com",
"https?://your-",
"https?://<",
# Kubernetes cluster-internal service addresses used in operator/k8s examples
# These are real k8s DNS names that cannot be reached from CI
"https?://[^/]*\\.svc\\.cluster\\.local",
"https?://[^/]*\\.svc:[0-9]+",
"https?://[^/]*\\.tyk\\.svc",
# Dead URLs that appear in tutorial code blocks or example output
# Excluding rather than removing to preserve the tutorial context
"https?://evening-beach-40625\\.herokuapp\\.com", # dead Heroku demo app used in Heroku deploy tutorial
"https?://www\\.cdr\\.gov\\.au", # Australian CDR site — HTTP/2 server issue, not a broken link
# Placeholder hostnames used in code examples and tutorials
# These are intentionally fake — not real external URLs
"https?://httpbin/", # bare 'httpbin' with no TLD (real httpbin.org is still checked)
"https?://httpbin\\.ahmet", # fake hostname used in k8s ingress tutorial
"https?://ipaddress/", # literal placeholder hostname
"https?://dashboard-host", # placeholder Tyk Dashboard hostname
"https?://gluu-server", # placeholder Gluu IdP hostname
"https?://my-bundle-server\\.com", # example plugin bundle server
"https?://[^/]*\\.do\\.poc\\.tyk", # Tyk DigitalOcean POC/demo environments
"https?://branch-name\\.mintlify\\.app", # placeholder Mintlify branch preview URL
# Sites that time out or are otherwise unreachable from CI runners
# (valid public docs, not broken links)
"https?://helm\\.sh",
# Known to block bots / return false 403s
# These are valid pages but return 403 to automated checkers (not real broken links)
"https?://(www\\.)?linkedin\\.com",
"https?://(www\\.)?facebook\\.com",
"https?://(www\\.)?reddit\\.com",
"https?://(www\\.)?medium\\.com",
"https?://blog\\.postman\\.com",
"https?://dev\\.mysql\\.com",
"https?://www\\.cloudflare\\.com",
]
# Treat these status codes as success (429 = rate-limited but link exists)
accept = [200, 201, 202, 203, 204, 206, 301, 302, 303, 307, 308, 429]
# Retry up to 3 times before marking a link as broken
max_retries = 3
# Timeout per request in seconds
timeout = 30
# Number of concurrent requests
max_concurrency = 8