Esta é a referência completa dos campos de blueprints. Para uma introdução aos blueprints e a como eles se encaixam no ambiente do Devin, veja Configuração declarativa do
ambiente.
Visão geral
post-build para blueprints em nível de org e Enterprise e uma seção clone opcional para blueprints em nível de repositório:
Todas as seções são opcionais. Você pode incluir qualquer combinação delas.
initialize é executado durante builds completos e para workspaces reconstruídos do zero. Os resultados são salvos no snapshot. Em um build diferencial, os workspaces herdados pulam initialize, fazem pull do código mais recente e executam apenas maintenance. Escreva maintenance de forma que seja autossuficiente e possa ser executado de forma independente sobre o snapshot existente, sem exigir que initialize seja executado imediatamente antes nem depender de variáveis de ambiente que initialize tenha gravado anteriormente em $ENVRC. No início de cada sessão, os comandos de maintenance não são executados automaticamente — em vez disso, são apresentados ao agente como contexto para que ele saiba quais comandos de dependência executar, se necessário (por exemplo, após fazer pull do código mais recente). Os comandos ainda devem ser rápidos e incrementais. Os builds são executados automaticamente quando seu blueprint muda e periodicamente (a cada ~24 horas).
initialize
initialize para instalar ferramentas e runtimes que não dependem do estado específico do seu código: runtimes de linguagens, pacotes do sistema e CLIs globais.
Forma simples
Formato estruturado
run.
Quando usar initialize vs maintenance
Ambas as seções são executadas durante builds completos. Em builds diferenciais, workspaces herdados pulam
initialize e executam apenas maintenance após obter o código mais recente. Ferramentas e runtimes de linguagem ficam em initialize; comandos de dependência vinculados aos arquivos de lock do seu código ficam em maintenance.
maintenance
maintenance para instalar dependências e executar outros comandos que devem ser executados depois que seu código for clonado. Esses comandos são executados durante os builds e são apresentados ao agente no início da sessão para que ele possa executá-los novamente se as dependências tiverem mudado. É aqui que entram npm install, pip install, uv sync e comandos semelhantes.
Para blueprints no nível do repositório, os comandos
maintenance são executados a partir do diretório raiz do repositório. Para blueprints no nível da organização, eles são executados a partir do diretório inicial (~).knowledge
knowledge não é executada. Ela fornece informações de referência que Devin usa ao trabalhar no seu projeto. É aqui que você informa ao Devin os comandos corretos para linting, testing, build e quaisquer outros workflows específicos do projeto.
O campo
name é um rótulo. Por convenção, lint, test e build são os nomes padrão. O Devin usa esses nomes ao verificar o próprio trabalho. Você pode adicionar outros itens de conhecimento com nomes personalizados:
post-build
post-build está disponível apenas em blueprints de nível organizacional e de nível Enterprise (não há suporte para ela em blueprints de nível de repositório). Suas etapas são executadas durante o build depois que todos os repositórios forem clonados e que as etapas initialize e maintenance de cada um forem concluídas, mas antes da verificação de integridade e da criação da imagem de snapshot. Isso faz dela o lugar certo para validações entre repositórios e verificações de integridade que exigem o ambiente totalmente montado.
Como ela é executada no fim do build, com todo o ambiente já configurado, uma etapa post-build pode ver todos os repositórios clonados e todas as ferramentas instaladas pelos blueprints Enterprise, organizacionais e de repositório.
As etapas
post-build usam os mesmos tipos de etapa de initialize e maintenance (comandos de shell run e uses do GitHub Actions) e são executadas a partir do diretório inicial (~).clone
clone substitui os padrões usados quando o Devin clona o repositório para o snapshot. Todos os campos são opcionais e, se não forem definidos, usam um padrão sensato que preserva o comportamento atual.
clone se aplica apenas a blueprints no nível do repositório — ele controla como esse repositório específico é clonado no snapshot. Não tem efeito em blueprints no nível da organização ou no nível Enterprise.Tipos de etapa
initialize, maintenance ou post-build usa um de dois tipos: comandos de shell (run) ou GitHub Actions (uses).
Comandos de shell (run)
Detalhes de execução:
- Os comandos são executados em bash. Se qualquer comando em um script com várias linhas falhar, a etapa inteira é interrompida imediatamente.
- Blueprints no nível da organização são executados no diretório inicial (
~). - Blueprints no nível do repositório são executados na raiz do repositório clonado.
- Cada etapa tem um tempo limite de 1 hora.
- Os segredos ficam automaticamente disponíveis como variáveis de ambiente.
GitHub Actions (uses)
Formato da referência da ação:
github.com/ e o sufixo @<ref> são obrigatórios. O ref normalmente é uma tag de versão, como v5.
Ações mais usadas:
Como os valores de
with funcionam:
Os valores passados em with são fornecidos à ação como entradas, seguindo as mesmas convenções dos workflows do GitHub Actions. Todos os valores são convertidos em strings.
setup-python adiciona o binário do Python ao PATH, que permanece disponível para todas as etapas posteriores e no maintenance.
run vs uses: qual usar
Na prática, a maioria das configurações usa
uses para runtimes de linguagem e run para todo o resto.
Variáveis de ambiente e segredos
Variáveis de ambiente por etapa
env:
Variáveis de ambiente compartilhadas entre etapas ($ENVRC)
$ENVRC:
$ENVRC são exportadas automaticamente e ficam disponíveis para todas as etapas seguintes e para a sessão do Devin produzida pela build atual. Isso funciona de forma semelhante ao $GITHUB_ENV no GitHub Actions.
Isso também se aplica ao PATH. Se você instalar uma ferramenta em um diretório não padrão
(qualquer coisa fora de /usr/bin ou /usr/local/bin), adicione-o ao $ENVRC para que
as etapas seguintes e os blueprints em nível de repositório possam localizar o binário:
export PATH=... simples dentro de um bloco run: afeta apenas o shell daquela etapa.
Cada etapa inicia um novo processo de shell, portanto as alterações em PATH que não forem gravadas em
$ENVRC serão perdidas.
As GitHub Actions
uses: (por exemplo, actions/setup-node) propagam automaticamente suas adições ao PATH
para $ENVRC — você só precisa fazer isso manualmente para etapas run:.$ENVRC é redefinido no início de cada build, incluindo builds diferenciais.
Os valores gravados durante uma build não ficam disponíveis para a build seguinte. Em
particular, um workspace herdado executa apenas maintenance, portanto não pode depender de
PATH ou de outras variáveis que initialize gravou em $ENVRC na build
pai. Configure qualquer ambiente exigido por maintenance no próprio
maintenance.
Segredos
$MY_SECRET).
Os segredos são injetados antes da execução de cada etapa durante os builds e reinjetados no início de cada sessão. Eles são removidos da própria imagem do snapshot, para que as credenciais nunca fiquem embutidas em imagens de máquina salvas.
- Segredos da organização: Disponíveis como variáveis de ambiente em todas as etapas de todos os blueprints da organização. Configure-os na aba Segredos do editor do blueprint de nível da organização.
- Segredos do Enterprise: Mesclados com os segredos da organização (os segredos da organização têm precedência em caso de conflito de nomes). Disponíveis em todas as organização do enterprise.
- Segredos do repositório: Gravados em um arquivo por repositório em
/run/repo_secrets/{owner/repo}/.env.secrets. Durante os builds, os segredos do repositório são carregados automaticamente antes da execução das etapas do blueprint desse repositório. Durante a sessão, o Devin os carrega ao trabalhar no repositório. Configure-os na aba Segredos do editor de blueprint do repositório.
Segredos apenas para build: Segredos marcados como “somente para build” ficam disponíveis durante os builds do snapshot, mas são removidos antes de o snapshot ser salvo. Use-os para credenciais necessárias apenas no momento do build (por exemplo, baixar artefatos privados durante
initialize).Anexos de arquivos
.npmrc, settings.xml e arquivos de configuração) no editor de blueprint. Os arquivos importados são gravados em ~/.files/, e uma variável de ambiente é definida apontando para o caminho de cada arquivo:
FILE_.
Use anexos de arquivo nas etapas do seu blueprint:
Blueprints baseados em Git
.devin/blueprint.yaml diretamente no seu repositório e depois sincronizá-los pela API ou pela UI. Consulte Blueprints baseados em Git para obter instruções de configuração e mais detalhes.
Exemplo completo
Para entender como os blueprints se compõem entre os níveis (enterprise → org → repo), os status das builds, os estados do repositório e o que aciona um rebuild, consulte Builds e sessões na página de configuração declarativa.

