Documentation Index
Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
Use this file to discover all available pages before exploring further.
Il s’agit de la référence complète des champs des blueprints. Pour une introduction aux blueprints et à leur place dans l’environnement de Devin, consultez Configuration déclarative de
l’environnement.
Vue d’ensemble
| Section | Objectif | Exécuté ? |
|---|---|---|
initialize | Installer les outils système, les environnements d’exécution et les CLI globaux | Oui, à chaque build |
maintenance | Installer et mettre à jour les dépendances du projet | Oui, pendant les builds. Présenté à l’agent au démarrage de la session (non exécuté automatiquement). |
knowledge | Indiquer à Devin comment exécuter le lint, les tests, le build, ainsi que d’autres informations spécifiques au projet | Non, fourni à titre de référence |
initialize s’exécute uniquement pendant les builds. Les résultats sont enregistrés dans le snapshot. maintenance s’exécute pendant les builds (après initialize). Au début de chaque session, les commandes maintenance ne sont pas exécutées automatiquement ; elles sont plutôt présentées à l’agent comme contexte afin qu’il sache quelles commandes de dépendance exécuter si nécessaire (par ex. après avoir récupéré la dernière version du code). Les commandes doivent toujours être rapides et incrémentales. Les builds s’exécutent automatiquement lorsque votre blueprint change et périodiquement (toutes les ~24 heures).
initialize
initialize pour installer des outils et des environnements d’exécution qui ne dépendent pas de l’état spécifique de votre code : environnements d’exécution de langage, packages système et CLI globaux.
Forme simple
Format structuré
run.
Quand utiliser initialize ou maintenance
À mettre dans initialize | À mettre dans maintenance |
|---|---|
| Installation du runtime du langage | npm install / pip install |
Packages système (apt-get) | bundle install |
| Outils CLI globaux | go mod download |
| Configuration ponctuelle | Mises à jour du cache des dépendances |
GitHub Actions (setup-python, etc.) | Scripts de configuration spécifiques au dépôt |
initialize ; les commandes de dépendances liées aux fichiers de verrouillage de votre code vont dans maintenance.
maintenance
maintenance pour installer les dépendances et exécuter les autres commandes qui doivent l’être après le clonage de votre code. Ces commandes s’exécutent pendant les builds et sont présentées à l’Agent au démarrage de la session afin qu’il puisse les relancer si les dépendances ont changé. C’est à cet endroit que doivent figurer npm install, pip install, uv sync et autres commandes similaires.
Pour les blueprints au niveau du dépôt, les commandes
maintenance s’exécutent depuis le répertoire racine du dépôt. Pour les blueprints au niveau de l’organisation, elles s’exécutent depuis le répertoire personnel (~).knowledge
knowledge n’est pas exécutée. Elle fournit des informations de référence que Devin utilise lorsqu’il travaille sur votre projet. C’est ainsi que vous indiquez à Devin les commandes appropriées pour le linting, les tests, la build et tout autre workflow spécifique au projet.
| Champ | Type | Description |
|---|---|---|
name | string | Identifiant de cet élément de Knowledge (p. ex., lint, test, build) |
contents | string | Texte libre contenant des commandes, des instructions ou des notes |
name est un libellé. Par convention, lint, test et build sont les noms standard. Devin s’y réfère lorsqu’il vérifie son travail. Vous pouvez ajouter d’autres éléments de Knowledge avec des noms personnalisés :
Types d’étapes
initialize ou maintenance utilise l’un des deux types suivants : les commandes shell (run) ou les GitHub Actions (uses).
Commandes shell (run)
| Champ | Type | Description |
|---|---|---|
name | string (optional) | Libellé explicite pour l’étape |
run | string | Commande(s) shell à exécuter |
env | map (optional) | Variables d’environnement supplémentaires pour cette étape |
- Les commandes s’exécutent dans bash. Si une commande d’un script sur plusieurs lignes échoue, l’étape entière s’arrête immédiatement.
- Les blueprints au niveau de l’organisation s’exécutent dans le répertoire personnel (
~). - Les blueprints au niveau du dépôt s’exécutent à la racine du dépôt cloné.
- Chaque étape a un délai d’expiration d’une heure.
- Les secrets sont automatiquement disponibles sous forme de variables d’environnement.
GitHub Actions (uses)
| Champ | Type | Description |
|---|---|---|
name | string (optional) | Libellé explicite de l’étape |
uses | string | Référence d’action GitHub |
with | map (optional) | Paramètres d’entrée pour l’action |
env | map (optional) | Variables d’environnement supplémentaires pour cette étape |
github.com/ et le suffixe @<ref> sont tous deux obligatoires. La référence est généralement une balise de version comme v5.
Actions couramment utilisées :
| Action | Objectif | Exemple de with |
|---|---|---|
github.com/actions/setup-python@v5 | Installer Python | python-version: "3.12" |
github.com/actions/setup-node@v4 | Installer Node.js | node-version: "20" |
github.com/actions/setup-go@v5 | Installer Go | go-version: "1.22" |
github.com/actions/setup-java@v4 | Installer Java/JDK | java-version: "21", distribution: "temurin" |
github.com/gradle/actions/setup-gradle@v4 | Installer Gradle | (aucun) |
github.com/ruby/setup-ruby@v1 | Installer Ruby | ruby-version: "3.3" |
with :
Les valeurs transmises via with sont fournies à l’action sous forme d’entrées, selon les mêmes conventions que dans les workflows GitHub Actions. Toutes les valeurs sont converties en chaînes de caractères.
setup-python ajoute l’exécutable Python au PATH, qui reste ensuite disponible pour toutes les étapes ultérieures ainsi que dans maintenance.
run vs uses : lequel utiliser
Utilisez run lorsque… | Utilisez uses lorsque… |
|---|---|
Vous installez des packages système (apt-get) | Vous configurez des environnements d’exécution (Python, Node, Go, Java, Ruby) |
| Vous exécutez des scripts spécifiques au projet | Une GitHub Action officielle existe pour ce dont vous avez besoin |
| Vous configurez des fichiers ou l’environnement | Vous voulez une gestion automatique des versions et de la mise en cache |
| La commande est simple et autonome | Vous utiliseriez la même Action dans un workflow GitHub Actions |
uses pour les environnements d’exécution et run pour tout le reste.
Variables d’environnement et secrets
Variables d’environnement propres à l’étape
env :
Variables d’environnement d’une étape à l’autre ($ENVRC)
$ENVRC :
$ENVRC sont automatiquement exportées et accessibles à toutes les étapes suivantes ainsi qu’à la session Devin. Cela fonctionne de manière similaire à $GITHUB_ENV dans GitHub Actions.
Secrets
$MY_SECRET).
Les secrets sont injectés avant l’exécution de chaque étape pendant les builds et réinjectés au début de chaque session. Ils sont supprimés de l’image du snapshot elle-même, de sorte que les identifiants ne sont jamais intégrés aux images de machine enregistrées.
- Secrets d’organisation : disponibles sous forme de variables d’environnement à chaque étape dans tous les blueprints de l’organisation. Définissez-les dans l’onglet Secrets de l’éditeur du blueprint à l’échelle de l’organisation.
- Secrets Enterprise : fusionnés avec les secrets d’organisation (les secrets d’organisation sont prioritaires en cas de conflit de nom). Disponibles dans toutes les organisations de l’enterprise.
- Secrets du dépôt : écrits dans un fichier par dépôt à l’emplacement
/run/repo_secrets/{owner/repo}/.env.secrets. Pendant les builds, les secrets du dépôt sont automatiquement chargés avant l’exécution des étapes du blueprint de ce dépôt. En session, Devin les charge lorsqu’il travaille dans le dépôt. Configurez-les dans l’onglet Secrets de l’éditeur du blueprint du dépôt.
Secrets réservés au build : les secrets marqués comme “build only” sont disponibles pendant les builds de snapshot, mais supprimés avant l’enregistrement du snapshot. Utilisez-les pour les identifiants nécessaires uniquement au moment du build (p. ex., pour télécharger des artefacts privés pendant
initialize).Fichiers joints
.npmrc, settings.xml ou des fichiers de configuration) dans l’éditeur de blueprint. Les fichiers téléversés sont enregistrés dans ~/.files/, et une variable d’environnement est définie pour pointer vers le chemin de chaque fichier :
FILE_.
Utilisez des fichiers joints dans les étapes de votre blueprint :
Blueprints basés sur Git
Les blueprints basés sur Git ne sont pas encore pris en charge. Cette fonctionnalité sera bientôt disponible. Vous pourrez stocker des blueprints dans votre dépôt et déclencher automatiquement des builds lorsqu’ils sont modifiés. Pour l’instant, configurez les blueprints via l’interface utilisateur, dans Settings > Environnement > Blueprints.
Exemple complet
Pour savoir comment les blueprints s’articulent entre les niveaux (entreprise → org → repo), les statuts de build, les états du dépôt et ce qui déclenche une reconstruction, consultez Builds et
sessions sur la page de configuration déclarative.
