Vai al contenuto principale
Riferimento rapido per la sintassi e il comportamento di environment.yaml. Per una panoramica dei concetti e le guide, vedi Configurazione dell’ambiente.

Riferimento dei campi

Campi di primo livello

CampoTipoObbligatorioEseguito duranteDescrizione
initializestringa o elencoNoSolo buildComandi di configurazione una tantum. I risultati vengono salvati nell’immagine macchina. Deve essere idempotente.
maintenancestringa o elencoNoBuild + avvio della sessioneComandi ricorrenti per le dipendenze. Devono essere rapidi e incrementali.
knowledgeelenco di oggettiNoMai (solo riferimento)Informazioni caricate nel contesto di Devin all’avvio della sessione.

Campi del passaggio (forma estesa)

CampoTipoObbligatorioDescrizione
namestringNoEtichetta leggibile mostrata nei log di build. Aiuta a identificare più facilmente gli errori.
runstringNoComandi shell da eseguire. Sono supportate stringhe su più righe. I passaggi senza run vengono ignorati.

Campi di una voce Knowledge

CampoTipoObbligatorioDescrizione
namestringIdentificatore (ad es. test, lint, startup, architecture, notes).
contentsstringContenuto di riferimento. Non viene eseguito come comando.

Dettagli di esecuzione

  • I comandi vengono eseguiti in bash con set -e abilitato — se una riga restituisce un errore, il passaggio si interrompe immediatamente.
  • I comandi specifici per repo vengono eseguiti dalla directory radice della repo (~/repos/<repo-name>). I comandi Enterprise e org-wide vengono eseguiti dalla directory home (~).
  • Ogni passaggio nella forma estesa viene eseguito nel proprio contesto di shell.
AmbitoTimeout
Comando singolo1 ora
Build totale2 ore
Best practice:
  • Usa subshell per i comandi nelle sottodirectory: (cd packages/frontend && npm install).
  • Preferisci installazioni incrementali in maintenance (ad esempio, npm install invece di npm ci).
  • Evita i comandi di build (npm run build, make) in maintenance — vengono eseguiti a ogni sessione.
  • Aggiungi i flag -y per evitare prompt interattivi: sudo DEBIAN_FRONTEND=noninteractive apt-get install -y.
  • I comandi devono poter essere eseguiti in sicurezza più voltemaintenance viene eseguito a ogni sessione.

Strumenti preinstallati

L’immagine di base di Devin (Ubuntu 22.04, x86_64) include questi strumenti. Non devi installarli.
CategoriaInclusi
LinguaggiNode.js (tramite nvm), Python 3.12 (tramite pyenv, con anche le versioni 3.9–3.11 disponibili), Rust (tramite rustup), Java (OpenJDK 17), Scala, Go
Gestori di pacchettinpm, yarn, pnpm, pip, cargo
Controllo versionegit, gh (GitHub CLI), git-lfs
ContainerDocker (con plugin Compose — usa docker compose, non docker-compose)
Strumenti di buildmake, build-essential (gcc, g++)
Utilitàcurl, wget, jq, ripgrep, direnv, awscli, ffmpeg, Homebrew, OpenVPN
BrowserChrome (per il testing nel browser)
Questo elenco potrebbe non essere completo. Esegui which <tool> o <tool> --version in una sessione di Devin per verificare. Se manca qualcosa, installalo nella sezione initialize.

Glossario

TermineDefinizione
ConfigurazioneUna configurazione dell’ambiente salvata (il contenuto YAML). Ogni repo/org/enterprise ha la propria.
Versione della configurazioneUna revisione specifica di una configurazione. Ogni salvataggio crea una nuova versione.
BuildIl processo di esecuzione della configurazione per creare un’immagine macchina.
Immagine macchinaL’ambiente salvato creato da una build riuscita. Le sessioni si avviano dall’ultima immagine generata con successo.
ConfiguratoUn repository con una configurazione YAML esplicita (initialize/maintenance/knowledge).
InclusoUn repository clonato nell’immagine macchina ma senza configurazione personalizzata.
DisponibileUn repository accessibile all’org ma non aggiunto all’ambiente.
$ENVRCUn file speciale per impostare le variabili d’ambiente. Simile a $GITHUB_ENV di GitHub Actions.
Successo parzialeUna build in cui la parte principale è riuscita, ma alcune configurazioni a livello di repository non sono andate a buon fine.

Passaggi successivi