Project

General

Profile

Actions

Feature #48

closed
RA

Feature #24: Implémenter un hook pour la création automatique de tickets Redmine depuis les scans Trivy et Semgrep

Présentation & sécurité : endpoint POST /scan-results, validation, permissions + doc

Feature #48: Présentation & sécurité : endpoint POST /scan-results, validation, permissions + doc

Added by Redmine Admin about 2 months ago. Updated about 2 months ago.

Status:
Shipped
Priority:
Normal
Assignee:
-
Start date:
06/11/2026
Due date:
% Done:

0%

Estimated time:
spec_ref:

conversation:21#24

build_status:
build_number:
ci_run_url:
scan_status:
scan_report_url:
deploy_status:
preprod_url:
deployed_at:
branch:
feat/48-scan-results-endpoint
pr_url:
https://github.com/omdev-tech/PipeLiner-Client/pull/28
security_key:
severity:
paused:

Description

Couche présentation de `api/` : endpoint `POST /scan-results` acceptant Trivy et Semgrep (discrimination de la source), invoquant le cas d'usage `CreateTicketsFromScan`. Validation stricte des payloads (schémas Pydantic, rejet malformé/abusif, anti-injection sur les champs réinjectés dans titre/description). Permissions : seul le projet concerné crée des tickets (secret webhook + contrôle `project_key`). Réponse = résumé (créés / ignorés-doublons / régressions), pas de 500 sur payload invalide (400) ni sur Redmine dégradé. Documentation : formats Trivy/Semgrep, logique anti-doublons/régression, prérequis `security_key`. TDD (tests d'API, Redmine mocké via respx).

## Critères d'acceptation
- `POST /scan-results` accepte Trivy et Semgrep et déclenche le cas d'usage.
- Payloads malformés/abusifs rejetés (400) ; champs réinjectés assainis (anti-injection).
- Permissions vérifiées (secret webhook + `project_key`) ; accès non autorisé refusé (401/403).
- Réponse résumé créés/doublons/régressions ; pas de 500 sur payload invalide ni Redmine dégradé.
- Documentation livrée ; tests d'API verts ; ruff + mypy passent.

Estimation : M. Dépend de : « Domaine & application … » + « Infrastructure Redmine … ».


Files

qa-48-scan-results-proof.txt (4.21 KB) qa-48-scan-results-proof.txt Redmine Admin, 06/11/2026 08:09 PM
Actions

Also available in: PDF Atom