Feature #24
Updated by Redmine Admin about 2 months ago
## Spec — Hook création auto de tickets Redmine depuis Trivy & Semgrep ### Approche (hexagonal api/) Endpoint webhook `POST /scan-results` → normalise chaque vuln en `SecurityFinding` → cas d'usage crée un ticket via le `RedmineClient` existant (modèle create_ticket_from_draft). Dédup par clé stockée dans un champ custom `security_key` : Trivy `CVE-{id}`/`{paquet}@{version}_CVE-{id}` ; Semgrep `{fichier}:{ligne}_{rule-id}`. Ticket ouvert avec la clé → pas de doublon ; seulement résolu/fermé → régression (nouveau ticket). ### Découpage (3 couches) 1. Domaine & application : SecurityFinding, normaliseurs Trivy/Semgrep, calcul clé, format ticket, use case via port abstrait. 2. Infrastructure Redmine : adaptateur (recherche par security_key, création, anti-doublon/régression). 3. Présentation & sécurité : endpoint, validation Pydantic stricte + anti-injection, permissions (secret webhook + project_key), doc. ### AC : endpoint Trivy+Semgrep ; format (tag Sécurité + Submitted) ; anti-doublon + régression ; sécurité (validation + permissions) ; tests respx + RUN_REDMINE_LIVE ; doc. Validé PO (approuvé). Découpé : #46 → #47 → #48. conversation:19