Aller au contenu principal

Configuration du quality gate

Le quality gate est la règle qui décide si un run CI bloque un merge. Il vit sur l'agent, s'édite dans l'UI (Agent → CI / CD → Quality Gate) et est réutilisé par tous les providers CI.

Champs

ChampRequisDéfautDescription
Score global minimumoui0.85Le run échoue quand le score global de la scorecard est strictement inférieur (0 à 1).
Dimensions bloquantesnon[]Liste de clés de dimensions (security, privacy, ...). Chacune doit passer individuellement pour que le gate passe.
Critères en échec maximumnonvideCap sur le nombre total de critères en échec dans la scorecard. Laissez vide pour désactiver.
Zone de warningnonvidePlancher souple sous le minimum global. Quand le score atterrit dans [warning_band, overall_min), le gate passe (exit 0) mais le run est marqué warning.

Flux de décision

Le backend évalue le gate après la construction de la scorecard :

  1. Le score global doit atteindre le minimum configuré.
  2. Chaque dimension bloquante doit passer.
  3. Les critères en échec doivent rester sous le cap configuré, si un cap existe.
  4. La zone de warning peut marquer un run en warning sans échouer le job CI.

La réponse du run expose la décision sous results.gate, avec passed, is_warning, les scores et les messages d'échec quand le gate échoue.

Éditer le gate sans toucher au CI

Comme le gate vit sur l'agent (pas dans le repo), vous pouvez le serrer ou le relâcher sans redéployer quoi que ce soit :

  1. Ouvrez l'agent dans Mankinds.
  2. CI / CD → Quality Gate.
  3. Ajustez les valeurs.
  4. Sauvegarder.

Le prochain run CI prend le nouveau gate automatiquement. Chaque changement est enregistré dans l'historique de versions de config de l'agent.

API

Vous pouvez aussi mettre à jour le gate via l'API :

PATCH /api/v1/agents/{agent_id}/gate
X-API-Key: mk_xxx
Content-Type: application/json

{
"gate": {
"overall_score_min": 0.85,
"dimensions_must_pass": ["security", "privacy"],
"max_failed_criteria": 2,
"warning_band_min": 0.70
}
}

Le payload est mergé dans agent.config["gate"] ; le reste de la config est laissé intact.

Questions fréquentes

Quelles dimensions je peux exiger ?

Exigez seulement les dimensions évaluées par les critères sélectionnés sur l'agent. Si une dimension requise n'a pas de score pour cet agent, le gate ne peut pas passer de manière fiable.

Je peux avoir des gates différents par branche ?

Le gate est par agent. Utilisez des agents séparés si différents environnements ou branches doivent avoir des règles différentes.

Je peux override le gate sur un run CI ponctuel ?

Non. Le snippet CI porte l'UUID de l'agent et la clé API ; le gate reste la source de vérité sur l'agent.

Voir aussi