Aller au contenu principal

Branchez Mankinds sur votre CI/CD

Bloquez une pull request quand votre système IA régresse. L'intégration CI Mankinds permet à un pipeline de déclencher une évaluation, attendre le résultat, et sortir avec un code non nul quand le quality gate échoue.

push -> CI build -> deploy preprod -> Mankinds eval gate -> merge ou rollback

Le même primitif fonctionne avec GitHub Actions, GitLab CI, Bitbucket Pipelines, CircleCI, Jenkins et n'importe quel runner : déclencher un run d'agent, attendre le résultat du gate, propager le code de sortie.

Fonctionnement

  1. Vous configurez un quality gate sur votre agent Mankinds existant.
  2. Votre runner CI déclenche l'agent via POST /api/v1/agents/{agent_id}/runs avec votre clé API.
  3. Le runner poll GET /api/v1/agents/{agent_id}/runs/{run_id} jusqu'à terminaison.
  4. Le runner lit results.gate.passed : true sort en 0, false sort en 1.
  5. Mankinds garde le run visible dans le dashboard de l'agent avec les métadonnées CI envoyées par le runner.

La règle pass/fail vit sur l'agent, et l'endpoint testé vit sur le système attaché. Le fichier CI n'a besoin que de l'UUID de l'agent et d'une clé API.

Pré-requis

  • Un agent Mankinds actif (Guardian ou Red Team) attaché à votre système cible.
  • Un quality gate configuré sur l'agent. Voir Configuration du quality gate.
  • Une clé API créée avec Accès CI dans Settings → API Keys.
  • Un environnement de pré-production accessible depuis Mankinds. Configurez l'endpoint une fois sur le système.

Quickstart 5 minutes (GitHub Actions)

Si vous avez déjà un agent et une clé API, copiez-collez le snippet ci-dessous dans votre repo :

  1. Settings → Secrets and variables → Actions → New repository secret : nom MANKINDS_API_KEY, collez votre clé.

  2. Créez .github/workflows/mankinds-ci.yml :

    name: Mankinds quality gate
    on:
    pull_request:
    branches: [main]
    jobs:
    eval:
    runs-on: ubuntu-latest
    steps:
    - uses: mankinds/cli@v1
    with:
    agent: 00000000-0000-4000-8000-000000000000
    api-key: ${{ secrets.MANKINDS_API_KEY }}
  3. Pushez, ouvrez une PR. Le workflow déclenche l'agent et échoue le check si le gate échoue.

Autres CI ? Voir GitLab CI, Autres providers.

Questions fréquentes

Le runner a besoin d'accéder au code source de mon repo ?

Non. Le runner envoie les métadonnées CI comme le SHA du commit, la branche, le numéro de PR, le repo et l'acteur. Votre code, vos modèles, vos prompts et vos datasets ne quittent pas votre runner.

Quelle URL est réellement évaluée ?

L'agent est attaché à un système Mankinds, qui porte l'endpoint de votre service IA. Le snippet CI référence l'agent, pas l'URL, donc le workflow reste stable quand l'endpoint système change.

Combien de temps prend un run ?

Cela dépend du profil d'agent et de la taille du test plan. Le runner CI attend jusqu'à la fin du run ou jusqu'à son timeout.

Je peux faire tourner la même éval en local avant de pusher ?

Oui, avec l'image du runner CI Mankinds publiée sur GHCR :

docker run --rm \
-e MANKINDS_API_KEY=$MANKINDS_API_KEY \
ghcr.io/mankinds/ci:v1 \
--agent 00000000-0000-4000-8000-000000000000

L'image est ghcr.io/mankinds/ci ; elle expose la commande mankinds-ci utilisée par les exemples par provider.

Étapes suivantes