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 |
|
| 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) |
|
| `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 |
|
| `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)
|
## 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
|
## Gitea-Integration
|
||||||
|
|
||||||
|
|||||||
@@ -18,9 +18,10 @@ extract_subject() {
|
|||||||
|
|
||||||
# Git-Commit-Pruefungen
|
# Git-Commit-Pruefungen
|
||||||
if echo "$cmd" | grep -qE '^\s*git\s+commit\b'; then
|
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 "")
|
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'
|
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
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user