diff --git a/scripts/gruppenpruefung.py b/scripts/gruppenpruefung.py index 4be9316..a8d2161 100644 --- a/scripts/gruppenpruefung.py +++ b/scripts/gruppenpruefung.py @@ -17,8 +17,8 @@ zu überspringen, und jede Prüfung bildet einen real passierten Fall ab 4. Issue-Drift management ↔ docs/issues/ — Titel, Zustand, Meilenstein, Priorität, Status-Label. (F-001/F-017-Klasse) 5. Git-Hygiene seit 2026-08-07 — Autor- und Committer-Zeit 12:00:00 - UTC, kanonische Identität; Ausnahme: der Rotations-Bot - (ADR-0009). (F-002/F-003) + UTC, kanonische Identität; ausgenommen sind maschinelle Absender + (MASCHINEN, per Adresse — ADR-0009). (F-002/F-003) Demo-Modus für den Altbestand (Muster-B-Nachweis, Feldtest F-002): --hygiene-lokal [--seit JJJJ-MM-TT] @@ -43,7 +43,16 @@ API = "https://git.lab/api/v4" GRUPPE = "axion1337.chat" GRENZE = "2026-08-07" KANONISCH = ("Thore Cimbal", "cfx@riot.8shield.net") -BOT = "turn-secret-rotation" +# Maschinelle Absender: ihre Commits entstehen ohne Menschen am Gerät, eine +# Zuschreibung an eine Person wäre falsch (ADR-0009, dort für den Rotations-Bot +# entschieden; dieselbe Begründung trägt für jeden weiteren Automaten). +# Gematcht wird die ADRESSE, nicht der Name: "Administrator" ist als Name viel zu +# generisch, um damit Befunde stillzulegen. +MASCHINEN = { + "turn-secret-rotation@axion1337.chat", # TURN-Secret-Rotation (CronJob im Cluster) + "admin@axion1337.chat", # Wiki.js Git-Storage (Anzeigename "Administrator") + "wiki@axion1337.chat", # Wiki.js Git-Storage (Dienst-Identität) +} EIGENE_MAILS = {"cfx@riot.8shield.net", "gamemaster@axion1337.de", "cfxqriot.8shield.net", "Scrublord@Mac.Bad"} STATUS_LABEL = {"open": None, "next": "status:next", @@ -224,7 +233,7 @@ def main() -> int: pfad = urllib.parse.quote(f"{GRUPPE}/{slug}", safe="") for c in api(f"projects/{pfad}/repository/commits" f"?since={GRENZE}T00:00:00Z&all=true", token): - if BOT in (c.get("author_name") or ""): + if (c.get("author_email") or "").lower() in MASCHINEN: continue wer = f"{c.get('author_name')} <{c.get('author_email')}>" if not zeit_ok(c["authored_date"]) or not zeit_ok(c["committed_date"]):