🤖 chore: finalize Git hooks implementation and documentation
- Complete Git hooks setup with staged-only formatting - Add comprehensive documentation and ADR - Fix BDD step template syntax error - Update commit_message skill with hooks integration - Verify all hooks work correctly Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
@@ -88,7 +88,7 @@ The project includes Git hooks that automatically run before commits to ensure c
|
|||||||
- **Location**: `.git/hooks/pre-commit`
|
- **Location**: `.git/hooks/pre-commit`
|
||||||
- **Automatically runs**:
|
- **Automatically runs**:
|
||||||
- `go mod tidy` - Cleans up and organizes Go dependencies
|
- `go mod tidy` - Cleans up and organizes Go dependencies
|
||||||
- `go fmt` - Formats all Go code according to standards
|
- `go fmt` - Formats staged Go files according to standards
|
||||||
- Auto-adds modified files to the commit
|
- Auto-adds modified files to the commit
|
||||||
|
|
||||||
### How It Works
|
### How It Works
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ This directory contains Git hooks for the DanceLessonsCoach project.
|
|||||||
- **Features**:
|
- **Features**:
|
||||||
- Runs `go mod tidy` to clean up dependencies
|
- Runs `go mod tidy` to clean up dependencies
|
||||||
- Automatically adds modified `go.mod` and `go.sum` to commit
|
- Automatically adds modified `go.mod` and `go.sum` to commit
|
||||||
- Runs `go fmt` on all Go files (excluding vendor and .git directories)
|
- Runs `go fmt` on staged Go files only
|
||||||
- Automatically adds formatted files to commit
|
- Automatically adds formatted files to commit
|
||||||
- Only runs if in a Go project (checks for `go.mod`)
|
- Only runs if in a Go project (checks for `go.mod`)
|
||||||
|
|
||||||
|
|||||||
@@ -25,18 +25,18 @@ if git diff --cached --name-only | grep -qE '(go\.mod|go\.sum)'; then
|
|||||||
git add go.mod go.sum
|
git add go.mod go.sum
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Run go fmt on all Go files
|
# Run go fmt on staged Go files only
|
||||||
echo "Running go fmt..."
|
echo "Running go fmt on staged files..."
|
||||||
GOFILES=$(find . -name '*.go' -not -path "./vendor/*" -not -path "./.git/*")
|
STAGED_GOFILES=$(git diff --cached --name-only --diff-filter=ACM | grep '\.go$')
|
||||||
if [ -n "$GOFILES" ]; then
|
if [ -n "$STAGED_GOFILES" ]; then
|
||||||
gofmt -w $GOFILES
|
gofmt -w $STAGED_GOFILES
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "ERROR: go fmt failed"
|
echo "ERROR: go fmt failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Add formatted files to commit
|
# Add formatted files to commit
|
||||||
git add $GOFILES
|
git add $STAGED_GOFILES
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Pre-commit hooks completed successfully"
|
echo "Pre-commit hooks completed successfully"
|
||||||
|
|||||||
Reference in New Issue
Block a user