Bug-Reports, Devlog-Threads und Watchdog

- /bug (alle Member): erstellt Gitea-Issue inkl. Screenshot-Upload als Asset;
  bug_reports-Tabelle für den Rückkanal — Issue geschlossen (issues-Webhook)
  → DM an den Reporter
- Auto-Thread '💬 Devlog <Datum>' unter jedem Devlog-Post (Setting, Default an)
- Watchdog: prüft Setting watchdog_urls alle 2 min, DM an Admin nach 2 Fails
  in Folge + Entwarnung mit Downtime-Dauer
- Setup-Seite: Bug-Repo, Threads-Toggle, Watchdog-URLs; Env GITEA_API_TOKEN/GITEA_URL

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-23 11:29:01 +02:00
co-authored by Claude Opus 4.8
parent 4fb3a6d02c
commit 07c3bf47d0
15 changed files with 359 additions and 4 deletions
+25
View File
@@ -142,6 +142,31 @@ Unter **/settings** (Nav: „Setup", nur als Admin sichtbar) lassen sich zur Lau
---
## Bug-Reports, Threads & Watchdog
**`/bug` (alle Member):** Titel + Beschreibung + optional Screenshot → der Bot
erstellt ein Gitea-Issue im konfigurierten Repo (Setup-Seite), lädt den
Screenshot als Issue-Attachment hoch und merkt sich den Reporter.
Wird das Issue in Gitea **geschlossen**, bekommt der Reporter automatisch
eine DM („Dein Bug ist behoben ✅").
Setup:
1. Gitea → Einstellungen → Anwendungen → **Token erzeugen** (Scope `write:issue`)
→ als `GITEA_API_TOKEN` in die Env
2. Im Gitea-Webhook zusätzlich das Trigger-Event **„Issues"** aktivieren
(für die Rückkanal-DMs)
**Auto-Threads:** Unter jedem Devlog-Post öffnet der Bot einen Diskussions-Thread
(„💬 Devlog 23.07.", Auto-Archiv nach 3 Tagen). Abschaltbar auf der Setup-Seite.
Der Bot braucht im Devlog-Kanal die Berechtigung **„Öffentliche Threads erstellen"**.
**Watchdog:** Auf der Setup-Seite URLs eintragen (kommagetrennt, z. B.
`https://git.d4rkst3r.de, https://bot.d4rkst3r.de/health`) — der Bot prüft sie
alle 2 Minuten und schickt dir bei Ausfall (2 Fehlschläge in Folge) eine
**Discord-DM**, inkl. Entwarnung mit Downtime-Dauer.
---
## Setup: Webinterface
**Zugriffsmodell:** Devlog-Archiv ist öffentlich (wie der Discord-Kanal),