mirror of
https://github.com/dragonflydb/dragonfly.git
synced 2024-12-14 11:58:02 +00:00
a29b66068c
* docs(community): Add Code of Conduct #107 Signed-off-by: Ryan Russell <git@ryanrussell.org> * feat(pre-commit): Add Conventional Commits `commit-msg` hook #107 Signed-off-by: Ryan Russell <git@ryanrussell.org> * bug(pre-commit): Fix conventional commits entry to include `contrib/scripts` #107 Signed-off-by: Ryan Russell <git@ryanrussell.org>
71 lines
2 KiB
Bash
Executable file
71 lines
2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
# list of Conventional Commits types
|
|
cc_types=("feat" "fix")
|
|
default_types=("build" "chore" "ci" "docs" "${cc_types[@]}" "perf" "refactor" "revert" "style" "test")
|
|
types=( "${cc_types[@]}" )
|
|
|
|
if [ $# -eq 1 ]; then
|
|
types=( "${default_types[@]}" )
|
|
else
|
|
while [ $# -gt 1 ]; do
|
|
types+=( "$1" )
|
|
shift
|
|
done
|
|
fi
|
|
|
|
msg_file="$1"
|
|
|
|
r_types="($(IFS='|'; echo "${types[*]}"))"
|
|
r_scope="(\([[:alnum:] \/-]+\))?"
|
|
r_delim='!?:'
|
|
r_subject=" [[:print:]].+"
|
|
pattern="^$r_types$r_scope$r_delim$r_subject$"
|
|
|
|
if grep -Eq "$pattern" "$msg_file"; then
|
|
exit 0
|
|
fi
|
|
|
|
echo "[Commit message] $( cat "$msg_file" )"
|
|
echo "
|
|
Thank you for your interest in Dragonfly DB.
|
|
|
|
To keep things clean, we ask all commits to meet the following criteria:
|
|
- Be Signed (git commit -s -m ...)
|
|
- Valid Conventional Commit https://www.conventionalcommits.org/
|
|
|
|
Special Commit Words are correlated to versioning. Specifically \"fix\" and \"feat\"
|
|
- fix: a commit of the type fix patches a bug in your codebase (this correlates with PATCH in Semantic Versioning).
|
|
- feat: a commit of the type feat introduces a new feature to the codebase (this correlates with MINOR in Semantic Versioning).
|
|
- Breaking changes have a ! before the \":\"
|
|
|
|
Finally, If there is an Issue for this Commit, Please add it to the end of the commit message.
|
|
- Reference Issue Number at End of Commit Message (Optional)
|
|
|
|
Thank you for helping us label a \`fix\` and \`feat\` properly so that our commits, issues and semantic versioning are all aligned!
|
|
|
|
A Signed Conventional Commit with Issue Number look like:
|
|
|
|
git commit -s -m \"type(scope): description #112\"
|
|
|
|
Valid types:
|
|
|
|
$(IFS=' '; echo "${types[*]}")
|
|
|
|
Example Document Change:
|
|
|
|
docs(readme): Fix Example Links #121
|
|
|
|
Example Breaking New Feature
|
|
feat(ingest)!: Add new ingest # 122
|
|
|
|
This is an example of a fix with an Issue #
|
|
|
|
fix(ingest): Refactor for loop to list comprehension #123
|
|
|
|
Thank you for your contribution!
|
|
|
|
Sincerely,
|
|
The Dragonfly DB Contributors
|
|
"
|
|
exit 1
|