ci: Use typos
to check commit messages
Commit messages in the CMake repo may have Git hashes that can trigger
false positives in the `typos` checker.
Revert commit ddebf4653d
(ci: Do not check commit messages with 'typos'
due to false positives, 2025-02-07). Instead, copy the top-level config
file to a temporary location, add a configuration option to mark
10-hex-digit identifiers as always valid, and pass it to `typos` at the
commit checking phase.
This commit is contained in:
parent
47689e9253
commit
4558c8f9ff
@ -7,8 +7,17 @@ result=0
|
||||
echo "Running 'typos' on source code..."
|
||||
typos || result=1
|
||||
|
||||
# FIXME(typos): checking commit messages hits false positives
|
||||
# on "words" inside commit hashes. We'd need a way to disable
|
||||
# checking of combined identifiers to avoid this.
|
||||
cfg='.typos.toml'
|
||||
tmp_cfg="${TEMP:-/tmp}/$cfg"
|
||||
# Uncomment `extend-ignore-identifiers-re` in the top-level config file
|
||||
# to make Git hashes (possibly used in commit messages) valid "identifiers".
|
||||
sed 's/^#\s*\(extend-ignore-identifiers-re\)/\1/' "$cfg" >"$tmp_cfg"
|
||||
|
||||
if [ -n "$CI_MERGE_REQUEST_DIFF_BASE_SHA" ]; then
|
||||
for COMMIT in $(git rev-list "^$CI_MERGE_REQUEST_DIFF_BASE_SHA" "$CI_COMMIT_SHA"); do
|
||||
echo "Running 'typos' on commit message of $COMMIT..."
|
||||
git show --format=%B -s "$COMMIT" | typos -c "$tmp_cfg" - || result=1
|
||||
done
|
||||
fi
|
||||
|
||||
exit $result
|
||||
|
@ -11,6 +11,11 @@ extend-ignore-re = [
|
||||
, "(?Rm)^.*(#|/(/|\\*)|\\.\\.)\\s*(NOQA|noqa):? spellcheck(: *|=| +)disable-line$"
|
||||
]
|
||||
locale = "en-us"
|
||||
# ATTENTION If, for any reason, you want to add the
|
||||
# `extend-ignore-identifiers-re` to this section,
|
||||
# please also modify the `.gitlab/ci/typos.bash`
|
||||
# script accordingly.
|
||||
#extend-ignore-identifiers-re=["\\b[0-9a-f]{10}\\b"]
|
||||
|
||||
# Add repo-wide false positives here in the form of `word = "word"`.
|
||||
# Check the manual for details.
|
||||
|
Loading…
Reference in New Issue
Block a user