Files
awesome-copilot/hooks/session-auto-commit/auto-commit.sh
Aaron Powell acb5ad4ce8 feat: add hooks functionality with automated workflows
- Introduced hooks to enable automated workflows triggered by specific events during GitHub Copilot sessions.
- Added documentation for hooks in AGENTS.md and README.md.
- Created a new directory structure for hooks, including README.md and hooks.json files.
- Implemented two example hooks: Session Auto-Commit and Session Logger.
- Developed scripts for logging session events and auto-committing changes.
- Enhanced validation and parsing for hook metadata.
- Updated build and validation scripts to accommodate new hooks functionality.
2026-02-09 16:44:53 +11:00

46 lines
1012 B
Bash
Executable File

#!/bin/bash
# Session Auto-Commit Hook
# Automatically commits and pushes changes when a Copilot session ends
set -euo pipefail
# Check if SKIP_AUTO_COMMIT is set
if [[ "${SKIP_AUTO_COMMIT:-}" == "true" ]]; then
echo "⏭️ Auto-commit skipped (SKIP_AUTO_COMMIT=true)"
exit 0
fi
# Check if we're in a git repository
if ! git rev-parse --is-inside-work-tree &>/dev/null; then
echo "⚠️ Not in a git repository"
exit 0
fi
# Check for uncommitted changes
if [[ -z "$(git status --porcelain)" ]]; then
echo "✨ No changes to commit"
exit 0
fi
echo "📦 Auto-committing changes from Copilot session..."
# Stage all changes
git add -A
# Create timestamped commit
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
git commit -m "auto-commit: $TIMESTAMP" --no-verify 2>/dev/null || {
echo "⚠️ Commit failed"
exit 0
}
# Attempt to push
if git push 2>/dev/null; then
echo "✅ Changes committed and pushed successfully"
else
echo "⚠️ Push failed - changes committed locally"
fi
exit 0