Formatez une entrée Keep a Changelog par type de changement
Transformez les données structurées d’une version en une entrée Keep a Changelog cohérente sans organiser manuellement titres et puces.
Lancer gratuitement
Indiquez la version, la date et les listes d’ajouts, modifications, corrections ou suppressions. Le formateur conserve leur ordre, omet les sections vides et renvoie du Markdown prêt à intégrer. Son résultat déterministe convient aux scripts de publication, à la livraison continue et aux contrôles éditoriaux.
Préparez les informations de publication
Commencez par la version et la date, puis classez chaque changement parmi les ajouts, modifications, corrections ou suppressions. Rédigez des descriptions brèves et autonomes. Le formateur n’invente ni ne résume les notes : il conserve vos formulations et leur ordre. Vous pouvez omettre les groupes vides. La version et la date doivent contenir du texte ; YYYY-MM-DD reste conseillé pour une date lisible et triable partout.
Comprenez la structure Markdown produite
Le résultat commence par un titre de niveau deux indiquant la version entre crochets et la date. Seuls les groupes non vides suivent, toujours dans l’ordre Ajouté, Modifié, Corrigé et Supprimé. Chacun reçoit un titre de niveau trois et des puces. Les espaces superflus et une puce initiale existante sont retirés. Le champ changelog finit par un saut de ligne, et une même entrée valide produit toujours le même texte dans le navigateur et via l’API.
Intégrez le formateur à votre publication
Utilisez-le après validation des notes et avant leur insertion dans le fichier du dépôt. Un script peut collecter les descriptions, demander leur mise en forme, puis présenter le résultat ou le transmettre à une étape de mise à jour. Cette capacité ne lit pas les commits, ne consulte pas les tickets, ne modifie aucun fichier et ne choisit pas la version. Vérifiez l’entrée dans le changelog complet si votre projet emploie des titres ou liens particuliers. Chaque requête API coûte $0.002.
Cas d’usage
Normaliser l’automatisation
Convertissez les données structurées en Markdown prévisible avant la mise à jour.
Préparer la relecture
Présentez une entrée ordonnée afin de privilégier exactitude et clarté.
Unifier plusieurs dépôts
Appliquez les mêmes titres et puces aux services partageant une structure.
Questions fréquentes
Quel est le tarif ?
Chaque requête API coûte $0.002.
Quels changements sont acceptés ?
Les groupes ajoutés, modifiés, corrigés et supprimés sont acceptés dans cet ordre.
Que devient un groupe vide ?
Son titre est omis ; seules les sections contenant des changements apparaissent.
Génère-t-il des notes depuis les commits ?
Non. Il formate vos descriptions sans examiner commits, tickets ou dépôts.
La version doit-elle être sémantique ?
Non. Elle doit être renseignée, mais votre système de version est conservé.
Modifie-t-il le fichier changelog ?
Non. Il renvoie une entrée Markdown dont l’insertion constitue une autre étape.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/dev2/changelog-entry-format \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"version":"2.4.0","date":"2026-07-25"}'const res = await fetch("https://api.kit.forhosting.com/dev2/changelog-entry-format", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"version": "2.4.0",
"date": "2026-07-25"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev2/changelog-entry-format",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"version": "2.4.0",
"date": "2026-07-25"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev2/changelog-entry-format", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"version":"2.4.0","date":"2026-07-25"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"version":"2.4.0","date":"2026-07-25"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev2/changelog-entry-format", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"version": "2.4.0",
"date": "2026-07-25"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.changelog_entry_format",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |