Files
Amir Zarrinkafsh 882b636ec6 ci(reviewdog): exclude pnpm probe files from typos (#13242)
`reviewdog` runs every runner concurrently in the repository root, and
two of them are `pnpm -C web exec eslint` and `pnpm -C docs exec
eslint`. Every `pnpm exec` writes two or three filesystem probe files
named `_tmp_<pid>_<hex>` into the directory it runs in and unlinks them
immediately, so `web/` and `docs/` gain and lose untracked files while
the `typos` runner is walking them.

Nothing ignores those names, so the walk yields one and the
`canonicalize()` in `walk_entry` then fails with `ENOENT`. Since v1.50.2
that no longer aborts the process, but it is still reported as an error,
which makes `typos` exit 1 rather than 0 or 2. `run_typos` reads any
other exit code as `typos` itself failing and emits `typos failed (exit
1): error: No such file or directory (os error 2)` against
`.reviewdog.yml`, so the linting step fails on a tree that has nothing
wrong with it. Nine of the last six hundred linting steps failed this
way, and the second `reviewdog` pass in `post-command` passed on the
same tree each time.

Excluding the name closes the window rather than narrowing it, since the
walker matches it against the `readdir` entry and never canonicalizes or
reads the path. Churning probe files through `web/`, `docs/` and
`internal/` while running `.buildkite/steps/lint.sh typos .` fails ten
times out of ten without the exclusion and zero times out of ten with
it.

`crate-ci/typos#1622` proposes skipping a vanished path during the walk
instead of reporting it, which would make this unnecessary, but it is
neither merged nor released.

Signed-off-by: Amir Zarrinkafsh <3339418+nightah@users.noreply.github.com>
2026-09-22 23:28:03 +00:00

86 lines
1.7 KiB
TOML

# SPDX-FileCopyrightText: 2026 Authelia
#
# SPDX-License-Identifier: Apache-2.0
[default]
locale = "en-us"
[default.extend-words]
# RFC 8176 fingerprint authentication method reference
fpt = "fpt"
# SMTP protocol command (not "hello")
HELO = "HELO"
helo = "helo"
# MITRE Corporation (proper noun, not "miter")
MITRE = "MITRE"
# HashiCorp (proper noun)
Hashi = "Hashi"
# Go variadic parameter name
datas = "datas"
# Contributor initials (FlorianObermayer)
fo = "fo"
Fo = "Fo"
FO = "FO"
# Test OAuth2 session identifier
ot = "ot"
Ot = "Ot"
# Test data for middleware sequence
acn = "acn"
ACN = "ACN"
# in-toto attestation format filename
intoto = "intoto"
# Intentional test endpoint name
anothe = "anothe"
# Appears in base64-encoded RSA key test data
fot = "fot"
Fot = "Fot"
# Fragments inside base64, tokens, hashes, and encoded test data
nd = "nd"
Nd = "Nd"
ND = "ND"
ba = "ba"
Ba = "Ba"
Bve = "Bve"
BA = "BA"
ue = "ue"
Ue = "Ue"
UE = "UE"
iy = "iy"
Iy = "Iy"
Iz = "Iz"
Pn = "Pn"
Thi = "Thi"
ABOV = "ABOV"
MYE = "MYE"
# Test data values (intentional misspellings in test inputs)
hass = "hass"
cpy = "cpy"
peom = "peom"
[files]
ignore-hidden = false
extend-exclude = [
".git/",
".claude/",
"_tmp_*",
"*.svg",
"go.sum",
"*-lock.yaml",
"*.css",
"*.pem",
"*.crt",
"*.crl",
"*.csr",
"docs/hugo_stats.json",
"docs/static/schemas/",
"docs/static/keys/",
"**/locales/*/",
"!**/locales/en/",
# Third-party config files (not ours to fix)
"internal/suites/example/compose/squid/",
"internal/suites/example/compose/redis/",
"internal/suites/example/compose/haproxy/",
"internal/suites/example/compose/ldap/",
"internal/suites/example/kube/ldap/",
]