fix(pruefung): BOT becomes a set of machine senders, matched by address
Declaring threadnet-wiki as a component took the check from 23 to 72 findings, 46 of them Wiki.js git-storage commits. Those are the same class ADR-0009 already exempted for the rotation bot — written without a human present, so attributing them to a person would be wrong — but the exemption held exactly one name. Matching is on the address rather than the display name on purpose: the Wiki.js account shows up as 'Administrator', which is far too generic to silence findings with. Down to 25, and the checks that should still fire do: eight non-canonical commits remain, all of them mine from the past two days. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
9aea4ad69d
commit
da673b537a
@@ -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 <klonverzeichnis> [--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"]):
|
||||
|
||||
Reference in New Issue
Block a user