feat: .commit-on-main Opt-out fuer Branch-Schutz
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -117,7 +117,7 @@ Kurzbefehl für den gesamten Ablauf: `/story`
|
||||
|
||||
| Event | Trigger | Skript | Aktion |
|
||||
|---|---|---|---|
|
||||
| `PreToolUse` | Bash | `hooks/pre-bash-checks.sh` | Git-main-Schutz, Commit-Message-Validierung (Conventional Commits), apt -y Blockade |
|
||||
| `PreToolUse` | Bash | `hooks/pre-bash-checks.sh` | Git-main-Schutz (Opt-out: `.commit-on-main`), Commit-Message-Validierung (Conventional Commits), apt -y Blockade |
|
||||
| `PostToolUse` | Edit / Write | `hooks/auto-format.sh` | `ruff` (Python), `eslint --fix` (JS/TS/Vue) oder `shellcheck` (Bash) |
|
||||
| `Stop` | Session-Ende | `hooks/verify-on-stop.sh` | Uncommittete Änderungen anzeigen |
|
||||
|
||||
@@ -139,7 +139,7 @@ Kurzbefehl für den gesamten Ablauf: `/story`
|
||||
|
||||
## Git-Workflow (Abweichung von globaler CLAUDE.md)
|
||||
|
||||
In diesem Repository wird **direkt auf `main` committet** — ohne Feature-Branches und ohne PRs. Die globale Regel „Niemals direkt auf main committen" gilt hier nicht, da es sich um ein Konfigurations-Repo ohne Deployment-Pipeline handelt.
|
||||
In diesem Repository wird **direkt auf `main` committet** — ohne Feature-Branches und ohne PRs. Die globale Regel „Niemals direkt auf main committen" gilt hier nicht, da es sich um ein Konfigurations-Repo ohne Deployment-Pipeline handelt. Die Datei `.commit-on-main` im Repo-Root signalisiert dem PreToolUse-Hook, den Branch-Schutz zu überspringen.
|
||||
|
||||
## Gitea-Integration
|
||||
|
||||
|
||||
@@ -18,9 +18,10 @@ extract_subject() {
|
||||
|
||||
# Git-Commit-Pruefungen
|
||||
if echo "$cmd" | grep -qE '^\s*git\s+commit\b'; then
|
||||
# Branch-Schutz: kein direkter Commit auf main
|
||||
# Branch-Schutz: kein direkter Commit auf main (sofern kein Opt-out per Markerdatei)
|
||||
branch=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "")
|
||||
if [ "$branch" = "main" ]; then
|
||||
repo_root=$(git rev-parse --show-toplevel 2>/dev/null || echo "")
|
||||
if [ "$branch" = "main" ] && [ ! -f "${repo_root}/.commit-on-main" ]; then
|
||||
printf '{"continue":false,"stopReason":"BLOCKIERT: Direkter Commit auf main verboten (globale Regel). Bitte zuerst Feature-Branch erstellen: git checkout -b session/YYYY-MM-DD-titel"}\n'
|
||||
exit 0
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user