Générer des notes de version à partir des commits git avec l'IA
Un agent transforme une liste de commits en notes de version destinées aux clients, regroupées, avec les changements incompatibles en premier.
- Fichiers
- Plafond de budget
Regardez une vraie exécution
Une vraie exécution du 7 oct. 2026, rejouée. Modèle : openai/gpt-6-luna.
- En file d'attentebudget de $0.03 réservé
- MicroVMmicroVM ready
- MicroVMworker started · shell off · web off
- Fichier
read commits.txt - MicroVMmicroVM destroyed
- Réussie2 appels au modèle, 2,265 jetonsSortie enregistrée (en anglais)
Breaking changes
- Update
/v1/runsrequests to usemax_cost_microsinstead oflimit; 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.
- Update
- Worker détruit$0.002963 facturé, $0.027037 libéré
Lancez-le vous-même
Ouvrez l'exemple dans le playground avec toute la requête déjà remplie. Il s'exécute sur votre propre compte, dans le budget indiqué, sur les mêmes systèmes d'exemple en lecture seule.
Budget pour cet exemple : $0.03
Fonctionnement
Collez la sortie de git log et obtenez des notes écrites pour les clients plutôt que pour les développeurs : les tâches internes sont omises, les changements incompatibles viennent en premier avec la marche à suivre. Les commits sont un fichier en lecture seule, aucun accès au dépôt n'est donc nécessaire.
Ce que l'agent peut et ne peut pas faire
Les permissions font partie de la requête. Tout ce qui n'est pas listé ici n'est pas disponible pour l'exécution.
| Paramètre | Autorisé |
|---|---|
| Connexions | Aucune |
| Web | Désactivé |
| Shell | Désactivé |
| Fichiers | commits.txt (lecture seule) |
| Rétention zéro des données | Désactivée : l'historique est conservé 30 jours |
| Budget | $0.03, un plafond strict |
| Délai | 60 secondes |
Les identifiants n'entrent jamais dans la machine : un broker les ajoute à chaque appel et impose les méthodes ci-dessus.
Le code
Voici la requête exacte envoyée par l'exemple. Définissez EPHEMERAL_API_KEY avec une clé de membre de votre organisation.
curl -X POST $EPHEMERAL_URL/v1/runs \
-H "Authorization: Bearer $EPHEMERAL_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d @request.jsonFichiers de la requête
Transmis en ligne, rien n'est donc importé au préalable. L'agent voit chacun comme un fichier en lecture seule.
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
Corps complet de la requête request.json
Le même corps, avec les fichiers en ligne.
{
"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
}