Skip to content

Commit 987e1e1

Browse files
committed
chore: add typos CI check
1 parent 4647dee commit 987e1e1

2 files changed

Lines changed: 94 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,23 @@ concurrency:
1414
cancel-in-progress: true
1515

1616
jobs:
17+
typos:
18+
name: Typos
19+
runs-on: ubuntu-latest
20+
permissions:
21+
contents: read
22+
steps:
23+
- name: Check out repo
24+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
25+
with:
26+
fetch-depth: 1
27+
28+
- name: Check for typos
29+
uses: crate-ci/typos@d43b6c087ac471e2ea7b8af622ff15f05c0c365b # v1.50.1
30+
with:
31+
files: src/content/docs src/content/partials src/content/changelog
32+
config: ./_typos.toml
33+
1734
pre-build:
1835
name: Pre Build
1936
runs-on: ubuntu-latest

_typos.toml

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
[files]
2+
extend-exclude = [
3+
# Third-party OSS license notices: names and text we must not "fix".
4+
"**/legal/3rdparty.*",
5+
# Filenames have typos (terrform, stablization) but renaming them changes
6+
# the published changelog URL. Needs a redirect, tracked separately.
7+
"src/content/changelog/terraform/2025-08-29-terrform-v5.9-provider.mdx",
8+
"src/content/changelog/workers/2025-03-22-smart-placement-stablization.mdx",
9+
]
10+
11+
[default]
12+
extend-ignore-identifiers-re = [
13+
# Base64 / JWT example tokens and hex hashes get tokenized into short
14+
# nonsense "words" (e.g. a JWT split into `Iy`, `OT`, `ba`). Skip long
15+
# opaque alphanumeric runs instead of trying to spell-check them.
16+
"[A-Za-z0-9+/_-]{20,}={0,2}",
17+
"\\b[0-9a-f]{8,40}\\b",
18+
]
19+
20+
[default.extend-words]
21+
# Real acronyms, proper nouns, package names, foreign-language example
22+
# strings, and intentional misspellings (used to illustrate a typo) that
23+
# read as typos in isolation. Add new entries above this list only after
24+
# confirming the flagged string isn't a real typo.
25+
acn = "acn" # Australian Company Number
26+
als = "als" # AsyncLocalStorage variable name
27+
aso = "aso" # ASN field name (Autonomous System Organization)
28+
ba = "ba" # hex hash / language code fragment
29+
brittish = "brittish" # period spelling, quoted Declaration of Independence
30+
canva = "canva" # Canva, the product
31+
certifi = "certifi" # Python package name
32+
christin = "christin" # example person name
33+
cloudfare = "cloudfare" # intentional example of a common misspelling
34+
compleat = "compleat" # period spelling, quoted Declaration of Independence
35+
ect = "ect" # ECT (Effective Connection Type) HTTP client hint
36+
ede = "ede" # Extended DNS Error (RFC 8914)
37+
eit = "eit" # Encryption-in-Transit (EIT)
38+
equest = "equest" # truncated real-world URL example fragment
39+
erro = "erro" # localized (Portuguese) UI string
40+
fo = "fo" # Faroese language code
41+
fpt = "fpt" # abbreviation in Access MFA docs
42+
gam = "gam" # Google Apps Manager
43+
gropus = "gropus" # intentional typo example (SCIM attribute mismatch)
44+
harrass = "harrass" # period spelling, quoted Declaration of Independence
45+
helo = "helo" # SMTP HELO command
46+
hom = "hom" # column value example (pipelines SQL reference)
47+
hpe = "hpe" # Hewlett Packard Enterprise
48+
iin = "iin" # Issuer Identification Number
49+
ist = "ist" # German UI string example
50+
iz = "iz" # base64 fragment
51+
jus = "jus" # dialect quote example
52+
metrix = "metrix" # GT Metrix, the product
53+
mis = "mis" # hyphenated prefix (mis-issued, mis-read)
54+
momento = "momento" # Spanish UI string example
55+
mor = "mor" # Merge-on-Read (Iceberg)
56+
muc = "muc" # Munich airport code
57+
nd = "nd" # abbreviation in vendor config examples
58+
nin = "nin" # $nin query operator
59+
noo = "noo" # base64 token fragment
60+
participantes = "participantes" # localized (Spanish/Portuguese) UI string
61+
pn = "pn" # base64 fragment / Yarn PnP
62+
referers = "referers" # HTTP header name (historic spelling)
63+
regon = "regon" # Polish business registry ID
64+
ser = "ser" # base64 fragment
65+
seeked = "seeked" # valid past tense of "seek" in this context
66+
sie = "sie" # German UI string example
67+
sur = "sur" # macOS "Big Sur", surName attribute
68+
tme = "tme" # example domain fragment
69+
toi = "toi" # French UI string example
70+
tru = "tru" # base64 fragment
71+
ue = "ue" # base64/JWT fragment
72+
unparseable = "unparseable" # valid alternate spelling of "unparsable"
73+
wich = "wich" # dialect quote example
74+
wya = "wya" # base64 fragment
75+
76+
[default.extend-identifiers]
77+
implicits = "implicits" # Scala `import spark.implicits._`

0 commit comments

Comments
 (0)