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.
Questo è il riferimento completo ai campi dei blueprint. Per un’introduzione ai blueprint e a come si inseriscono nell’ambiente di Devin, consulta Configurazione dichiarativa
dell’ambiente.
Panoramica
| Sezione | Scopo | Eseguito? |
|---|---|---|
initialize | Installa strumenti di sistema, runtime di linguaggio e CLI globali | Sì, durante ogni build |
maintenance | Installa e aggiorna le dipendenze del progetto | Sì, durante le build. Presentato all’agent all’inizio della sessione (non eseguito automaticamente). |
knowledge | Indica a Devin come eseguire lint, test, build e altre operazioni specifiche del progetto | No, fornito come riferimento |
initialize viene eseguito solo durante le build. I risultati vengono salvati nello snapshot. maintenance viene eseguito durante le build (dopo initialize). All’inizio di ogni sessione, i comandi di maintenance non vengono eseguiti automaticamente — vengono invece presentati all’agent come contesto, così sa quali comandi per le dipendenze eseguire se necessario (ad es. dopo aver aggiornato il codice all’ultima versione). I comandi devono comunque essere rapidi e incrementali. Le build vengono eseguite automaticamente quando il tuo blueprint cambia e periodicamente (circa ogni 24 ore).
initialize
initialize per installare strumenti e runtime che non dipendono dallo stato specifico del tuo codice: runtime dei linguaggi, pacchetti di sistema, CLI globali.
Forma semplice
Formato strutturato
run.
Quando usare initialize anziché maintenance
Inserisci in initialize | Inserisci in maintenance |
|---|---|
| Installazione del runtime del linguaggio | npm install / pip install |
Pacchetti di sistema (apt-get) | bundle install |
| Strumenti CLI globali | go mod download |
| Configurazione una tantum | Aggiornamenti della cache delle dipendenze |
GitHub Actions (setup-python, etc.) | Script di configurazione specifici per repo |
initialize; i comandi per le dipendenze che si basano sui file di lock del codice vanno in maintenance.
maintenance
maintenance per installare le dipendenze e per altri comandi che devono essere eseguiti dopo il clone del codice. Questi comandi vengono eseguiti durante le build e vengono esposti all’agente all’inizio della sessione, così che possa eseguirli di nuovo se le dipendenze sono cambiate. Qui vanno npm install, pip install, uv sync e comandi simili.
Per i blueprint a livello di repo, i comandi
maintenance vengono eseguiti dalla directory radice del repository. Per i blueprint a livello di org, vengono eseguiti dalla home directory (~).knowledge
knowledge non viene eseguita. Fornisce informazioni di riferimento che Devin utilizza quando lavora nel tuo progetto. È qui che indichi a Devin i comandi corretti per il linting, il testing, la build e qualsiasi altro flusso di lavoro specifico del progetto.
| Campo | Tipo | Descrizione |
|---|---|---|
name | string | Identificatore di questo elemento di conoscenza (ad es. lint, test, build) |
contents | string | Testo libero con comandi, istruzioni o note |
name è un’etichetta. Per convenzione, lint, test e build sono i nomi standard. Devin fa riferimento a questi nomi quando verifica il proprio lavoro. Puoi aggiungere altri elementi di conoscenza con nomi personalizzati:
Tipi di passaggi
initialize o maintenance usa uno di due tipi: comandi shell (run) o GitHub Actions (uses).
Comandi shell (run)
| Campo | Tipo | Descrizione |
|---|---|---|
name | string (optional) | Etichetta leggibile dall’utente del passaggio |
run | string | Comandi shell da eseguire |
env | map (optional) | Variabili d’ambiente aggiuntive per questo passaggio |
- I comandi vengono eseguiti in bash. Se un comando in uno script su più righe non riesce, l’intero passaggio si interrompe immediatamente.
- I blueprint a livello di org vengono eseguiti nella directory home (
~). - I blueprint a livello di repo vengono eseguiti nella directory radice del repository clonato.
- Ogni passaggio ha un timeout di 1 ora.
- I secret sono automaticamente disponibili come variabili d’ambiente.
GitHub Actions (uses)
| Campo | Tipo | Descrizione |
|---|---|---|
name | string (opzionale) | Etichetta del passaggio leggibile dall’utente |
uses | string | Riferimento a una GitHub Action |
with | map (opzionale) | Parametri di input dell’azione |
env | map (opzionale) | Variabili d’ambiente aggiuntive per questo passaggio |
github.com/ e il suffisso @<ref> sono entrambi obbligatori. Il ref è in genere un tag di versione come v5.
Azioni di uso comune:
| Azione | Scopo | Esempio di with |
|---|---|---|
github.com/actions/setup-python@v5 | Installare Python | python-version: "3.12" |
github.com/actions/setup-node@v4 | Installare Node.js | node-version: "20" |
github.com/actions/setup-go@v5 | Installare Go | go-version: "1.22" |
github.com/actions/setup-java@v4 | Installare Java/JDK | java-version: "21", distribution: "temurin" |
github.com/gradle/actions/setup-gradle@v4 | Installare Gradle | (nessuno) |
github.com/ruby/setup-ruby@v1 | Installare Ruby | ruby-version: "3.3" |
with:
I valori passati tramite with vengono forniti all’azione come input, seguendo le stesse convenzioni dei flussi di lavoro di GitHub Actions. Tutti i valori vengono convertiti in stringhe.
setup-python aggiunge l’eseguibile di Python a PATH, che rimane disponibile in tutti i passaggi successivi e in maintenance.
run vs uses: quale usare
Usa run quando… | Usa uses quando… |
|---|---|
Installi pacchetti di sistema (apt-get) | Imposti i runtime dei linguaggi (Python, Node, Go, Java, Ruby) |
| Esegui script specifici del progetto | Esiste una GitHub Action ufficiale per ciò che ti serve |
| Configuri file o l’ambiente | Vuoi la gestione automatica delle versioni e la cache |
| Il comando è semplice e indipendente | Useresti la stessa Action in un flusso di lavoro di GitHub Actions |
uses per i runtime dei linguaggi e run per tutto il resto.
Variabili d’ambiente e segreti
Variabili d’ambiente a livello di singolo passaggio
env:
Variabili d’ambiente tra i passaggi ($ENVRC)
$ENVRC:
$ENVRC vengono esportate automaticamente e sono disponibili in tutti i passaggi successivi e nella sessione di Devin. Funziona in modo analogo a $GITHUB_ENV in GitHub Actions.
Segreti
$MY_SECRET).
I segreti vengono iniettati prima dell’esecuzione di ogni passaggio durante le build e nuovamente all’inizio di ogni sessione. Vengono rimossi dall’immagine snapshot stessa, quindi le credenziali non vengono mai incorporate nelle immagini macchina salvate.
- Segreti dell’organizzazione: Disponibili come variabili d’ambiente in ogni passaggio di tutti i blueprint dell’org. Impostali nella scheda Secrets dell’editor del blueprint per tutta l’org.
- Segreti Enterprise: Uniti ai segreti dell’org (i segreti dell’org hanno la precedenza in caso di conflitto di nomi). Disponibili in tutte le org dell’Enterprise.
- Segreti del repository: Scritti in un file dedicato per repo in
/run/repo_secrets/{owner/repo}/.env.secrets. Durante le build, i segreti del repo vengono caricati automaticamente prima dell’esecuzione dei passaggi del blueprint di quel repo. Durante la sessione, Devin li carica quando lavora nel repo. Configurali nella scheda Secrets dell’editor del blueprint del repository.
Segreti solo build: I segreti contrassegnati come “build only” sono disponibili durante le build snapshot, ma vengono rimossi prima che lo snapshot venga salvato. Usali per credenziali necessarie solo in fase di build (ad es.
per scaricare artifact privati durante
initialize).File allegati
.npmrc, settings.xml e file di configurazione) tramite l’editor dei blueprint. I file caricati vengono salvati in ~/.files/ e viene impostata una variabile d’ambiente che punta al percorso di ciascun file:
FILE_.
Usa file allegati nei passaggi del blueprint:
Blueprint basati su Git
I blueprint basati su Git non sono ancora supportati. Questa funzionalità arriverà presto. Potrai archiviare i blueprint nel tuo repository e fare in modo che le build vengano avviate automaticamente quando cambiano. Per ora, configura i blueprint dall’interfaccia utente in Settings > Environment > Blueprints.
Esempio completo
Per capire come i blueprint si compongono nei vari livelli (enterprise → org → repo), gli stati delle build, gli stati del repository e cosa attiva una nuova build, consulta Build e
sessioni nella pagina della configurazione dichiarativa.
