CMake/.gitlab/ci/typos.bash
Alex Turbov 4558c8f9ff 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.
2025-02-14 10:10:12 -05:00

24 lines
650 B
Bash
Executable File

#!/bin/sh
set -e
result=0
echo "Running 'typos' on source code..."
typos || result=1
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