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.
| Approche | Emplacement du blueprint | Mode de modification | Application des modifications |
|---|---|---|---|
| Base de données (par défaut) | L’interface Settings de Devin | Modifier dans le navigateur | Enregistré immédiatement au clic |
| Adossé à Git | .devin/blueprint.yaml dans votre repo | Modifier dans votre IDE, merger une PR | Appeler l’API de synchronisation (ou cliquer sur Sync dans l’interface utilisateur), puis déclencher un build |
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 dépôt (généralement main ou master).
Si le dépôt 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. Si vous ajoutez le dépôt 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. La synchronisation ne s’effectue pas automatiquement lors d’un push — vous devez la déclencher explicitement :
- Synchronisation via l’API — Appelez l’endpoint de synchronisation v3 (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.
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 : running → succeeded ou failed.
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 dépôt
- 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
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 dépôt (ou dans<workspace>/.devin/blueprint.yamlpour les espaces de travail inclus). - Avez-vous déclenché une synchronisation ? 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.
- Le dépôt est-il dans l’environnement de Devin ? Le dépôt 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.
