Project

General

Profile

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

Back