fix(deploy): interne Anleitungen bleiben aus dem Webroot

docs/TESTUMGEBUNG.md und docs/TESTINSTANZ.md gingen bei jedem Deployment mit
hoch. Erreichbar waren sie dort nicht - aber nur, weil die Rewrite-Regel
^docs/(.+)$ auf public/docs/ umleitet und dort nichts Gleichnamiges liegt. Das
ist das Zufallsergebnis einer Regel, die fuer etwas anderes da ist: Faellt
mod_rewrite aus oder aendert jemand ihre Reihenfolge, liegen interne Adresse,
Benutzername und der Weg zur sudo-Freischaltung offen. Beide Dateien sagen in
ihrem eigenen Kopf, dass sie da nicht hingehoeren.

Pfadgenau statt ueber IGNORE_PATTERNS: Ein Eintrag "docs" haette auch
public/docs/ ausgeschlossen. docs/ selbst bleibt drin - cli/roadmap.php liest
DC_ROOT/docs/ROADMAP.md, und die Integrationsanleitungen sind aus dem WebUI
verlinkt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Deploymentcenter Bot
2026-08-31 10:49:52 +02:00
co-authored by Claude Opus 5
parent 60731c5104
commit 51aa526f35
+22
View File
@@ -57,6 +57,26 @@ IGNORE_PATTERNS = {
'tests',
}
# Einzelne Dateien, pfadgenau. Anders als IGNORE_PATTERNS, das jeden Pfadteil
# vergleicht: Ein Eintrag "docs" schloesse auch public/docs/ aus, und ein
# Eintrag "ROADMAP.md" jede gleichnamige Datei irgendwo im Baum.
#
# Warum ueberhaupt: Diese beiden Anleitungen nennen die interne Adresse der
# Test-VM, einen Benutzernamen und den Weg, dort sudo freizuschalten - beide
# sagen das in ihrem eigenen Kopf ("Bewusst nicht unter public/"). Erreichbar
# waren sie im Webroot bisher nicht, weil die Rewrite-Regel ^docs/ auf
# public/docs/ umleitet und dort nichts Gleichnamiges liegt. Das ist ein
# Zufallsergebnis einer Regel, die fuer etwas anderes da ist: Faellt
# mod_rewrite aus oder aendert jemand die Reihenfolge, liegen sie offen. Was
# nicht hochgeladen wird, kann auch nicht ausgeliefert werden.
#
# docs/ selbst bleibt drin: cli/roadmap.php liest DC_ROOT/docs/ROADMAP.md, und
# die Integrationsanleitungen werden aus dem WebUI verlinkt.
IGNORE_PATHS = {
'docs/TESTUMGEBUNG.md',
'docs/TESTINSTANZ.md',
}
def load_config():
if not CONFIG_FILE.exists():
print(f"Error: Config file {CONFIG_FILE} does not exist.")
@@ -102,6 +122,8 @@ def should_ignore(rel_path):
parts = Path(rel_path).parts
if not parts:
return False
if Path(rel_path).as_posix() in IGNORE_PATHS:
return True
for part in parts:
if part in IGNORE_PATTERNS:
return True