Vue d’ensemble
.devin/blueprint.yaml. Vous synchronisez ce fichier avec Devin via l’API ou l’interface utilisateur, puis vous déclenchez un build du snapshot pour appliquer les modifications.
Vous bénéficiez ainsi du même workflow que pour le code de votre application : modifier dans votre IDE, ouvrir une pull request, obtenir une review, merger, puis synchroniser et lancer un build via une étape de CI ou l’interface utilisateur.
Comment Devin choisit le mode lorsque vous ajoutez un repository
.devin/blueprint.yaml sur la branche par défaut :
- Si le fichier existe, Devin récupère le blueprint depuis Git (mode adossé à Git) et enregistre le commit SHA depuis lequel il a été synchronisé.
- Si le fichier est absent (ou si la détection échoue), Devin crée un blueprint vide que vous gérez dans l’interface Settings (mode base de données).
Les blueprints adossés à Git utilisent le même format YAML que l’éditeur de l’interface utilisateur. Consultez la référence Blueprint pour la spécification complète des champs.
Premiers pas
1. Créer le fichier blueprint
.devin/blueprint.yaml à la racine de votre dépôt :
2. Pousser sur la branche par défaut
.devin/blueprint.yaml sur la branche par défaut de votre repository (généralement main ou master).
Si le repository est déjà connecté à l’environnement de Devin, vous devez déclencher une synchronisation (via l’API ou le bouton Sync de l’interface utilisateur) pour que Devin prenne en compte le fichier, sauf si le blueprint est déjà en mode adossé à Git et que l’option Run on every commit to default branch est activée pour le repository. Si le blueprint est en mode base de données, basculez-le vers Git pour importer le fichier. Si vous ajoutez le repository pour la première fois, lors de la détection initiale, Devin lit le blueprint depuis Git.
3. Vérifiez dans l’UI
Comment fonctionne la synchronisation
.devin/blueprint.yaml depuis le HEAD de la branche par défaut du dépôt et à mettre à jour les versions du blueprint stockées par Devin. Par défaut, la synchronisation ne s’effectue pas automatiquement lors d’un push. Elle s’exécute dans les cas suivants :
- Synchronisation via l’API — Appelez l’endpoint de synchronisation (bêta) (voir Synchronisation via l’API ci-dessous). Il s’agit de l’approche recommandée pour les pipelines CI/CD.
- Synchronisation via l’UI — Cliquez sur le bouton Sync dans l’éditeur de blueprint. Cela déclenche également un build du snapshot si le contenu a changé.
- Lors de l’ajout d’un dépôt à l’environnement — Si
.devin/blueprint.yamlexiste sur la branche par défaut, le blueprint est automatiquement récupéré depuis Git lors de la détection initiale. - À chaque commit sur la branche par défaut (sur activation) — Pour les dépôts dont l’option Run on every commit to default branch est activée, chaque push sur la branche par défaut synchronise le blueprint et déclenche un build. Voir Synchroniser et builder à chaque commit sur la branche par défaut.
Synchronisation et build à chaque commit sur la branche par défaut
- Accédez à Settings > Environment > Blueprints et cliquez sur le repository.
- Ouvrez l’onglet Advanced.
- Activez Run on every commit to default branch.
L’onglet Advanced n’apparaît que pour les repositories GitHub.com, et uniquement lorsque cette option est disponible pour votre organisation. Pour les autres fournisseurs Git, ou lorsque le paramètre est désactivé, utilisez la synchronisation via l’API ou le bouton Sync.
Sync vs. build
- Sync récupère la version la plus récente de
.devin/blueprint.yamldepuis Git et enregistre une nouvelle version du blueprint. - Build crée une nouvelle image snapshot à partir des versions actuelles du blueprint.
Synchronisation via l’API
.devin/blueprint.yaml. Cela se fait généralement dans un pipeline CI/CD (p. ex., une étape post-fusion dans GitHub Actions).
Processus de bout en bout
Étape 1 : Synchroniser le blueprint
.devin/blueprint.yaml depuis la branche par défaut :
repo_name accepte owner/repo pour GitHub, ou une URL complète du service pour les autres plateformes d’hébergement (p. ex., https://gitlab.com/org/repo).
Étape 2 : Lancer un build
Étape 3 : Interroger périodiquement le statut du build (facultatif)
status prend successivement les valeurs suivantes : pending → running → succeeded ou failed (ou cancelled). Un build partiel est signalé comme succeeded par l’API, car le snapshot est utilisable.
Synchronisation à l’échelle de l’entreprise
Exemple : workflow GitHub Actions
Vous avez besoin d’un utilisateur de service ou d’un jeton d’accès personnel disposant des autorisations d’écriture sur l’environnement. Enregistrez le jeton sous
DEVIN_API_TOKEN et l’ID de votre org sous DEVIN_ORG_ID dans les secrets de votre dépôt.Modification des blueprints adossés à Git
Créer une PR depuis l’éditeur
- Ouvrez l’éditeur de blueprint dans Settings > Environment > Blueprints
- Modifiez le YAML dans l’éditeur
- Cliquez sur Create PR
- Devin ouvre une pull request sur votre dépôt pour mettre à jour
.devin/blueprint.yaml - Vérifiez, approuvez et fusionnez la PR
- La synchronisation suivante prend en compte la modification et déclenche un build
Modifiez directement dans votre repository
- Modifiez
.devin/blueprint.yamldans votre IDE ou chez votre fournisseur Git - Validez et poussez vers la branche par défaut (ou ouvrez une PR et fusionnez-la)
- Déclenchez une synchronisation via l’API ou cliquez sur Sync dans l’UI (inutile si Run on every commit to default branch est activé)
Suggestions de Devin
.devin/blueprint.yaml, plutôt qu’en l’enregistrant directement dans la base de données. Vous examinez et fusionnez la PR comme toute autre modification de code.
Monorepos et espaces de travail
includes pour définir des blueprints distincts pour chaque espace de travail. Chaque espace de travail dispose de son propre fichier .devin/blueprint.yaml dans son sous-répertoire.
Blueprint racine avec inclusions
.devin/blueprint.yaml indique quels espaces de travail disposent de leurs propres blueprints :
Blueprints des espaces de travail
.devin/blueprint.yaml :
Règles d’inclusion
- Chaque entrée
includescorrespond à un chemin de sous-répertoire (p. ex.packages/frontend). Devin recherche.devin/blueprint.yamldans ce répertoire. - Vous pouvez également utiliser le chemin complet :
packages/frontend/.devin/blueprint.yaml. - Seul le blueprint racine peut contenir
includes. Les inclusions imbriquées (c’est-à-dire un blueprint inclus qui déclare lui-mêmeincludes) ne sont pas autorisées. - Chaque chemin d’espace de travail ne peut apparaître qu’une seule fois dans
includes. - Si un fichier inclus est absent du dépôt, l’espace de travail correspondant est considéré comme supprimé et son blueprint est supprimé.
Basculer entre le mode Git et le mode base de données
Basculer vers Git
- Créez
.devin/blueprint.yamldans votre dépôt avec le contenu souhaité - Envoyez les modifications vers la branche par défaut
- Dans l’éditeur de blueprint, cliquez sur le menu déroulant Source et sélectionnez votre fournisseur Git (p. ex., “GitHub”)
- Devin synchronise le fichier depuis Git et bascule en mode adossé à Git
Passer en mode base de données
- Dans l’éditeur de blueprint, cliquez sur le menu déroulant Source et sélectionnez Database
- Le contenu actuel est conservé, mais les prochains push vers
.devin/blueprint.yamlne mettront plus le blueprint à jour - Vous pouvez désormais le modifier et l’enregistrer directement dans l’UI
Espaces de travail détachés
Historique des versions
- Source :
git_syncpour les versions créées par synchronisation,manualpour les versions créées dans l’UI - Commit SHA : le commit de la branche par défaut sur lequel la synchronisation a été effectuée (avec un lien vers le commit sur votre fournisseur Git)
YAML multidocument
.devin/blueprint.yaml prend en charge le YAML multidocument avec le séparateur ---. Vous pouvez ainsi définir des configurations spécifiques à chaque plateforme dans un seul fichier :
Dépannage
Le blueprint ne se synchronise pas
- Le fichier est-il au bon emplacement ? Il doit se trouver dans
.devin/blueprint.yamlà la racine du repository (ou dans<workspace>/.devin/blueprint.yamlpour les espaces de travail inclus). - Avez-vous déclenché une synchronisation ? Par défaut, la synchronisation ne se fait pas automatiquement lors d’un push. Appelez l’endpoint API de synchronisation ou cliquez sur le bouton Sync dans l’interface utilisateur. Si vous attendez que les pushs déclenchent une synchronisation automatique, vérifiez que l’option Run on every commit to default branch est activée dans l’onglet Advanced du repository et que vous avez poussé sur la branche par défaut.
- Le repository est-il dans l’environnement de Devin ? Le repository doit être ajouté dans Settings > Environment > Blueprints pour que la synchronisation puisse s’exécuter.
- Le mode adossé à Git est-il activé ? Le blueprint doit être en mode adossé à Git (et non en mode base de données) pour que la synchronisation puisse le mettre à jour.
Erreurs liées à un YAML non valide
.devin/blueprint.yaml contient du YAML non valide ou n’est pas conforme au schéma du blueprint, la synchronisation échoue et renvoie une erreur. Corrigez le fichier dans la branche par défaut, puis relancez la synchronisation. L’éditeur de blueprint dans l’interface utilisateur valide le schéma et affiche les erreurs avant que vous ne créiez une PR, ce qui permet de détecter les problèmes avant qu’ils n’atteignent la branche par défaut.
Blueprint affiche “Database” après un push
.devin/blueprint.yaml mais que l’éditeur affiche toujours “Database” comme source, il se peut que le blueprint ne soit pas encore passé en mode adossé à Git. Utilisez le menu déroulant Source pour basculer vers votre fournisseur Git, ce qui déclenchera la synchronisation initiale.
