Gere notas de versão a partir de commits do git com IA

Um agente transforma uma lista de commits em notas de versão voltadas aos clientes, agrupadas e com as mudanças incompatíveis em destaque no início.

  • Arquivos
  • Limite de orçamento

Veja uma execução real

Uma execução real em 7 de out. de 2026, reproduzida. Modelo: openai/gpt-6-luna.

Concluídarun_c697350f053152ff39bf441f8d691425$0.002963 de $0.03
  1. Na filaorçamento de $0.03 reservado
  2. MicroVMmicroVM ready
  3. MicroVMworker started · shell off · web off
  4. Arquivoread commits.txt
  5. MicroVMmicroVM destroyed
  6. Concluída2 chamadas ao modelo, 2,265 tokensSaída gravada (em inglês)

    Breaking changes

    • Update /v1/runs requests to use max_cost_micros instead of limit; the old field is no longer supported.

    New

    • Schedule email delivery for saved reports.
    • Use dark mode on the dashboard.
    • View invoices on a dedicated page linked from Settings.

    Improved

    • Large report CSV exports stream to avoid timing out.
    • Dashboard summary queries are cached for 60 seconds.

    Fixed

    • Users stay signed in after resetting their password.
    • An error is shown when an Excel row cannot be parsed.
    • Opening an empty report on mobile no longer crashes.
  7. Worker destruído$0.002963 cobrados, $0.027037 liberados
Modelo $0.000363 · Web $0.00 · Computação $0.0026

Execute você mesmo

Abra o exemplo no playground com a requisição inteira preenchida. Ele roda na sua própria conta, dentro do orçamento indicado, contra os mesmos sistemas de exemplo somente leitura.

Orçamento deste exemplo: $0.03

Como funciona

Cole a saída de git log e receba notas escritas para clientes, e não para desenvolvedores: tarefas internas ficam de fora, e as mudanças incompatíveis vêm primeiro, com o que fazer a respeito. Os commits são um arquivo somente leitura, então nada exige acesso ao repositório.

O que o agente pode e não pode fazer

As permissões fazem parte da requisição. Tudo o que não está listado aqui não está disponível para a execução.

ConfiguraçãoPermitido
ConexõesNenhuma
WebDesativado
ShellDesativado
Arquivoscommits.txt (somente leitura)
Retenção zero de dadosDesativada: o registro é mantido por 30 dias
Orçamento$0.03, um limite rígido
Tempo limite60 segundos

As credenciais nunca entram na máquina: um broker as adiciona a cada chamada e aplica os métodos acima.

O código

Esta é a requisição exata que o exemplo envia. Defina EPHEMERAL_API_KEY com uma chave de membro da sua organização.

curl -X POST $EPHEMERAL_URL/v1/runs \
  -H "Authorization: Bearer $EPHEMERAL_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d @request.json

Arquivos na requisição

Enviados inline, então nada é carregado antes. O agente vê cada um como um arquivo somente leitura.

commits.txt
commits.txt
a1f3c9e feat(reports): add scheduled email delivery for saved reports
b72d0aa fix(export): stream CSV exports so large reports no longer time out
c9e4d11 chore(deps): bump eslint to 9.12
d03a6be feat(api)!: rename /v1/runs field "limit" to "max_cost_micros" (old name removed)
e5b1f72 fix(auth): keep users signed in after a password reset
f8c0a34 docs: clarify webhook signature verification
0a9d7be refactor(db): move report queries into their own module
1b2c3d4 feat(ui): dark mode for the dashboard
2c3d4e5 fix(import): show an error when an Excel row cannot be parsed
3d4e5f6 test: add integration tests for billing proration
4e5f607 fix(mobile): prevent crash when opening an empty report
5f60718 perf(dashboard): cache the summary query for 60 seconds
6071829 ci: speed up the build with a dependency cache
718293a feat(billing): show invoices on a dedicated page linked from Settings
Corpo completo da requisição request.json

O mesmo corpo, com os arquivos inline.

request.json
{
  "prompt": "commits.txt lists the commits of the next release (hash, then a conventional-commit message; '!' marks a breaking change). Write release notes for customers in Markdown, at most 200 words. First a 'Breaking changes' section with what a customer must change (omit it if none), then 'New', 'Improved' and 'Fixed'. Leave out chores, tests, CI, docs-only and refactor commits. Write in plain language, one line per change, no hashes. Use only what the messages say and never invent details.",
  "files": [
    {
      "path": "commits.txt",
      "content": "a1f3c9e feat(reports): add scheduled email delivery for saved reports\nb72d0aa fix(export): stream CSV exports so large reports no longer time out\nc9e4d11 chore(deps): bump eslint to 9.12\nd03a6be feat(api)!: rename /v1/runs field \"limit\" to \"max_cost_micros\" (old name removed)\ne5b1f72 fix(auth): keep users signed in after a password reset\nf8c0a34 docs: clarify webhook signature verification\n0a9d7be refactor(db): move report queries into their own module\n1b2c3d4 feat(ui): dark mode for the dashboard\n2c3d4e5 fix(import): show an error when an Excel row cannot be parsed\n3d4e5f6 test: add integration tests for billing proration\n4e5f607 fix(mobile): prevent crash when opening an empty report\n5f60718 perf(dashboard): cache the summary query for 60 seconds\n6071829 ci: speed up the build with a dependency cache\n718293a feat(billing): show invoices on a dedicated page linked from Settings\n"
    }
  ],
  "shell": false,
  "timeout_seconds": 60,
  "max_cost_micros": 30000
}

Saiba mais

Exemplos relacionados

esc

Nada corresponde a “”.