christiangoeschel c1eb61d425
Some checks failed
Post PR Merge Action / integrate (push) Failing after 6s
feat: Add dev tools and helper scripts
2025-02-10 17:08:33 -05:00

24 lines
945 B
Bash
Executable File

#!/usr/bin/env bash
# This hook helps to enforce a commit message format convention
#
# It can be very frustrating when many commits are squashed for a final PR
# and the latter gets rejected due to incorrect commit message formatting
#
# Another reason for this enforcement is to provide valid input data for the
# automatic changelog generator which relies on the keywords found in the regex below
function log {
# shellcheck disable=2317
printf "[$(tput setaf 1)$(tput bold)error$(tput sgr0)] %s\n" "${@}"
}
message_file="${1}"
message="$(head -n1 "${message_file}")"
regex="^(bugfix|doc|docs|chore|feat|feature|fix|hotfix|perf|refactor|remove|security|style|test)(\([a-zA-Z0-9_-]+\))?!?:[[:space:]]+[[:graph:]]+([[:graph:]]|[[:space:]])*$"
if ! [[ "${message}" =~ ${regex} ]]; then
log "Invalid commit message format please consult CONTRIBUTING for more details on how to write appropriate commit messages"
exit 1
fi