Phase 8a+8b: Pre-Commit-Hook fuer shared/-Drift + Audit-UI resource_id-Filter
Phase 8a (Hook): - scripts/git-hooks/pre-commit: prueft bei Commits mit src/shared/-Aenderungen den Drift-Stand via sync_shared.py --check und gibt eine Warnung aus (blockiert NICHT - User entscheidet selbst, ob er zurueck will). - scripts/install-hooks.sh: kopiert Hooks aus scripts/git-hooks/ nach .git/hooks/ (idempotent, ueberspringt user-eigene Hooks). Phase 8b (Audit-UI): - dashboard.html: Resource-ID Eingabefeld neben den anderen Audit-Filtern. - audit.js: Filter-Listen erweitern, params um resource_id ergaenzt (Backend hatte den Filter seit Phase 5 schon). - Damit ist die Audit-Spur einer einzelnen Ressource auch im Audit-Log-Tab filterbar (vorher nur per Direkt-URL bzw. per Quellen-Audit-Modal).
Dieser Commit ist enthalten in:
40
scripts/install-hooks.sh
Ausführbare Datei
40
scripts/install-hooks.sh
Ausführbare Datei
@@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env bash
|
||||
# Installiert die Git-Hooks aus scripts/git-hooks/ in die lokale Repo-Konfig.
|
||||
#
|
||||
# Nutzung: ./scripts/install-hooks.sh
|
||||
#
|
||||
# Idempotent: Bereits installierte Hooks werden nur ueberschrieben wenn
|
||||
# sie aus scripts/git-hooks/ kommen (Marker-Check), nicht user-eigene.
|
||||
set -euo pipefail
|
||||
|
||||
REPO_ROOT="$(git rev-parse --show-toplevel)"
|
||||
SRC_DIR="$REPO_ROOT/scripts/git-hooks"
|
||||
DST_DIR="$REPO_ROOT/.git/hooks"
|
||||
|
||||
if [ ! -d "$SRC_DIR" ]; then
|
||||
echo "FEHLER: $SRC_DIR nicht gefunden" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "$DST_DIR"
|
||||
|
||||
count=0
|
||||
for hook in "$SRC_DIR"/*; do
|
||||
[ -f "$hook" ] || continue
|
||||
name="$(basename "$hook")"
|
||||
target="$DST_DIR/$name"
|
||||
|
||||
# Wenn Ziel existiert und kein AegisSight-Marker drin: ueberspringen
|
||||
if [ -f "$target" ] && ! grep -q "AegisSight-Verwaltung Pre-Commit-Hook\|AegisSight-Verwaltung Hook" "$target" 2>/dev/null; then
|
||||
echo " ! $name uebersprungen (existiert, kein AegisSight-Marker)"
|
||||
continue
|
||||
fi
|
||||
|
||||
cp "$hook" "$target"
|
||||
chmod +x "$target"
|
||||
echo " + $name installiert"
|
||||
count=$((count + 1))
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "$count Hook(s) installiert nach $DST_DIR"
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren