From 6d587c1f3af346349505b95937477716063b0f5c Mon Sep 17 00:00:00 2001 From: Dotty Dotter Date: Tue, 28 Apr 2026 01:31:25 +0200 Subject: [PATCH] feat(feedback): konfigurierbare Issue-Labels via GITEA_FEEDBACK_LABELS Dev-Container setzt GITEA_FEEDBACK_LABELS=feedback,dev, damit Feedback-Issues aus gwoe-dev.toppyr.de unterscheidbar markiert werden. Label-Farben: feedback rot, dev gelb, Sonst grau. Teil der Container-Duplikation fuer v1.x-Entwicklung. --- app/config.py | 3 +++ app/main.py | 12 +++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/app/config.py b/app/config.py index 8632f74..7e45f43 100644 --- a/app/config.py +++ b/app/config.py @@ -61,6 +61,9 @@ class Settings(BaseSettings): gitea_api_url: str = "https://repo.toppyr.de/api/v1" gitea_repo_owner: str = "tobias" gitea_repo_name: str = "gwoe-antragspruefer" + # Komma-getrennte Liste zusätzlicher Labels, die Feedback-Issues bekommen. + # Auf Dev: "feedback,dev" — damit Issues aus gwoe-dev.toppyr.de unterscheidbar sind. + gitea_feedback_labels: str = "feedback" model_config = {"env_file": ".env", "env_file_encoding": "utf-8"} diff --git a/app/main.py b/app/main.py index 9b3eb48..5bf5ee0 100644 --- a/app/main.py +++ b/app/main.py @@ -2732,9 +2732,15 @@ async def submit_feedback( headers = {"Authorization": f"token {token}", "Content-Type": "application/json"} async with httpx.AsyncClient(timeout=15.0) as session: - # Label sicherstellen - label_id = await _gitea_ensure_label(session, base_url, owner, repo, token, "feedback") - label_ids = [label_id] if label_id else [] + # Konfigurierbare Label-Liste (Default "feedback"; Dev setzt "feedback,dev") + label_names = [s.strip() for s in (settings.gitea_feedback_labels or "feedback").split(",") if s.strip()] + label_color_map = {"feedback": "#e11d48", "dev": "#f59e0b"} + label_ids: list[int] = [] + for name in label_names: + color = label_color_map.get(name, "#6b7280") + lid = await _gitea_ensure_label(session, base_url, owner, repo, token, name, color) + if lid: + label_ids.append(lid) # Issue anlegen payload = {