Automatischer Push der Anweisungsschicht
Der Vault-Root pusht ab jetzt nach jeder Änderung an CLAUDE.md, AI/Regelwerk/, .claude/agents/, .claude/skills/, .claude/settings.json oder .vault-tools/ selbsttätig nach Gitea. - .vault-tools/auto-push/auto_push.py: PostToolUse-Hook, committet und pusht. Fehlendes Token, fehlendes Remote und gescheiterter Push sind Befunde und gehen in den Kontext, nicht ins Schweigen. - .vault-tools/auto-push/askpass.py: reicht GITEA_TOKEN an git weiter, damit es weder in .git/config noch in einer Kommandozeile steht. - .vault-tools/auto-push/faelle_auto_push.py: 28 Fälle gegen ein echtes Wegwerf-Repo mit echtem Remote, alle bestanden. Der Lauf hat zwei Fehler gefunden, die jetzt behoben sind: die Pfadauflösung scheiterte an Windows-Kurznamen, und die Laufzeitsperre landete im Repo. - AI/Regelwerk/veroeffentlichung.md und ein Abschnitt im Stamm halten die Regel fest. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
1 parent
2c9a4475fc
commit
a81299e673
8 files changed
+812
-2
No files matched your search
@@ -0,0 +1,38 @@
|
||||
"""GIT_ASKPASS-Helfer: gibt das Gitea-Token aus der Umgebung an git weiter.
|
||||
|
||||
Ohne diesen Helfer landet das Token entweder in .git/config (Remote-URL mit
|
||||
Zugangsdaten) oder in einer Kommandozeile (http.extraheader) und ist dort fuer
|
||||
jeden Prozess der Maschine lesbar. git ruft dieses Skript mit der Eingabe-
|
||||
aufforderung als Argument auf und liest die Antwort von stdout.
|
||||
|
||||
Eine fehlende Variable ist ein Befund: das Skript endet mit Exit 1 und einer
|
||||
Meldung auf stderr, statt eine leere Zeile auszugeben. Sonst haengt git an
|
||||
einer stillen Fehlanmeldung.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
BENUTZER_VARIABLE = "GITEA_BENUTZER"
|
||||
TOKEN_VARIABLE = "GITEA_TOKEN"
|
||||
|
||||
|
||||
def main(argumente: list[str]) -> int:
|
||||
frage = " ".join(argumente).lower()
|
||||
if "username" in frage or "benutzer" in frage:
|
||||
name = "GITEA_BENUTZER"
|
||||
wert = os.environ.get(BENUTZER_VARIABLE, "").strip()
|
||||
else:
|
||||
name = "GITEA_TOKEN"
|
||||
wert = os.environ.get(TOKEN_VARIABLE, "").strip()
|
||||
if not wert:
|
||||
sys.stderr.write(f"{name} ist nicht gesetzt oder leer.\n")
|
||||
return 1
|
||||
sys.stdout.write(wert + "\n")
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main(sys.argv[1:]))
|
||||
Reference in new issue
Block a user