-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Git hooks
Helmut K. C. Tessarek edited this page Mar 15, 2025
·
1 revision
The following commit hooks can be useful... Use at your own discretion.
#!/bin/bash
HAS_ISSUES=0
FIRST_FILE=1
colerr="$(tput setaf 9)"
colok="$(tput setaf 10)"
colreset="$(tput sgr0)"
for file in $(git diff --name-only --staged); do
FMT_RESULT="$(rustfmt --edition 2021 --check --quiet $file 2>/dev/null || true)"
if [ "$FMT_RESULT" != "" ]; then
if [ $FIRST_FILE -eq 0 ]; then
echo -n ", "
fi
echo -n "${colerr}${file}${colreset}"
HAS_ISSUES=1
FIRST_FILE=0
fi
done
if [ $HAS_ISSUES -eq 0 ]; then
exit 0
fi
echo "."
echo "Your code has formatting issues in the files listed above."
echo "Format your code with: ${colok}cargo fmt --all --${colreset}"
exit 1
#!/bin/bash
HAS_ISSUES=0
MSG_FILE="$1"
colerr="$(tput setaf 9)"
colok="$(tput setaf 10)"
colreset="$(tput sgr0)"
MSG=`cat "$MSG_FILE" |grep -v -E "^$" |grep -v -E "^#" |head -1`
if [ "`cat "$MSG_FILE" |grep -v -E "^$" |grep -v -E "^#" |wc -l`" -gt 1 ]; then
LINE2=`cat "$MSG_FILE" |grep -v -E "^#" |head -2 |tail -1`
if [ "$LINE2" != "" ]; then
HAS_ISSUES=1
fi
fi
echo $MSG |grep -qE '^(feat|fix|docs|style|refactor|perf|test|build|chore|revert|ci)(\(.+\))?!?: .*[^ ]$'
if [ "$?" != "0" ]; then
HAS_ISSUES=1
fi
if [ $HAS_ISSUES -eq 0 ]; then
exit 0
fi
echo "The commit message must follow the Conventional Commits specification:"
echo ""
echo "----------------------------------------------------------------------"
echo "${colok}type${colreset}[(optional scope)]: description"
echo ""
echo "[optional body]"
echo ""
echo "[optional footer(s)]"
echo "----------------------------------------------------------------------"
echo ""
echo "Where ${colok}type${colreset} must be one of:"
echo ""
echo "${colok}feat ${colreset}| Features | A new feature"
echo "${colok}fix ${colreset}| Bug Fixes | A bug fix"
echo "${colok}docs ${colreset}| Documentation | Documentation only changes"
echo "${colok}style ${colreset}| Styles | Changes that do not affect the meaning of the code (white-space, formatting)"
echo "${colok}refactor ${colreset}| Code Refactoring | A code change that neither fixes a bug nor adds a feature"
echo "${colok}perf ${colreset}| Performance Improvements | A code change that improves performance"
echo "${colok}test ${colreset}| Tests | Adding missing tests or correcting existing tests"
echo "${colok}build ${colreset}| Builds | Changes that affect the build system or external dependencies"
echo "${colok}ci ${colreset}| Continuous Integrations | Changes to our CI configuration files and scripts"
echo "${colok}chore ${colreset}| Chores | Other changes that don't modify src or test files"
echo "${colok}revert ${colreset}| Reverts | Reverts a previous commit"
echo ""
echo "Read the full specification here: https://www.conventionalcommits.org/en/v1.0.0/"
exit 1
- Which container image to use
- Starting a container
- Using Docker Compose
- Using Podman
- Updating the vaultwarden image
- Overview
- Enabling admin page
- SMTP configuration
- Disable registration of new users
- Disable invitations
- Enabling WebSocket notifications
- Enabling Mobile Client push notification
- Enabling SSO support using OpenId Connect
- Other configuration
- Using the MariaDB (MySQL) Backend
- Using the PostgreSQL Backend
- Running without WAL enabled
- Migrating from MariaDB (MySQL) to SQLite
- Hardening Guide
- Password hint display
- Enabling U2F and FIDO2 WebAuthn authentication
- Enabling YubiKey OTP authentication
- Fail2Ban Setup
- Fail2Ban + ModSecurity + Traefik + Docker
- Translating the email templates
- Translating admin page
- Customize Vaultwarden CSS
- Using custom website icons
- Disabling or overriding the Vault interface hosting
- Building binary
- Building your own docker image
- Git hooks
- Differences from the upstream API implementation