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:
Alex Turbov 2025-02-10 00:56:39 +04:00 committed by Brad King
parent 47689e9253
commit 4558c8f9ff
2 changed files with 17 additions and 3 deletions

View File

@ -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

View File

@ -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.