Conventional-Commit-Nachrichten prüfen und zerlegen
Dieser Prüfer für Conventional-Commit-Nachrichten kontrolliert, ob der Header eines Commits der üblichen Struktur aus Typ, optionalem Bereich und Beschreibung entspricht, und gibt diese Bestandteile als stabile strukturierte Daten zurück.
Im Browser ausführen – kostenlos
Er erkennt die gängigen Typen für Build, Wartung, CI, Dokumentation, Funktionen, Fehlerkorrekturen, Leistung, Refactoring, Rücknahmen, Stil und Tests. Damit finden Sie fehlerhafte Header oder unbekannte Typen, bevor sie in den gemeinsamen Verlauf, einen Veröffentlichungsablauf oder ein automatisches Änderungsprotokoll gelangen. Das kompakte Ergebnis lässt sich ohne zusätzliche Textanalyse direkt in Skripten verwenden.
Prüfen Sie den Header und lesen Sie wichtige Felder aus
Senden Sie die vollständige Commit-Nachricht im Textfeld. Der Prüfer vereinheitlicht Zeilenenden und untersucht die erste Zeile als Conventional-Commits-Header. Darunter darf die Nachricht weiterhin eine Leerzeile, Textabsätze und Fußzeilen enthalten. Ein gültiger Header beginnt mit einem erkannten Typ in Kleinbuchstaben. Danach kann ein Bereich in Klammern folgen. Ein Ausrufezeichen darf einen Kompatibilitätsbruch kennzeichnen. Anschließend müssen ein Doppelpunkt, genau ein trennendes Leerzeichen und eine nicht leere Beschreibung stehen. Beispielsweise liefert <code>feat(parser): support escaped delimiters</code> den Typ <code>feat</code>, den Bereich <code>parser</code> und die Beschreibung <code>support escaped delimiters</code>. Das normale Ergebnis enthält außerdem <code>valid: true</code> und ein boolesches Feld für den Bruchstatus. Fehlt der Bereich, wird die Eigenschaft ausgelassen, statt einen irreführenden leeren oder null-Wert zu erhalten. Syntaxfehler und unbekannte Typen erzeugen einen Fehler für ungültige Eingaben mit einer klaren Erläuterung. Dadurch kann ein Editor-Hook oder eine Pipeline eine hilfreiche Korrektur anzeigen, ohne ein nur teilweise analysiertes Ergebnis deuten zu müssen.
Verstehen Sie die erkannte Konvention
Conventional Commits legt die Form eines Headers fest, lässt Projekten aber Raum für ein eigenes Typvokabular. Diese Fähigkeit verwendet bewusst eine feste, praktische Auswahl, damit Ergebnisse repositoryübergreifend vorhersehbar bleiben: build, chore, ci, docs, feat, fix, perf, refactor, revert, style und test. Ein formal richtig aufgebauter Header mit einem anderen Wort schlägt trotzdem fehl, denn die Annahme beliebiger Wörter würde die gewünschte Typprüfung wirkungslos machen. Typen müssen kleingeschrieben sein. Bereiche sind optional und dürfen Kleinbuchstaben, Ziffern, Punkte, Unterstriche, Schrägstriche oder Bindestriche enthalten; sie müssen mit einem Buchstaben oder einer Ziffer beginnen. Dadurch sind übliche Bereiche wie <code>api</code>, <code>web-client</code> und <code>packages/core</code> möglich, während mehrdeutige Leerzeichen und nicht geschlossene Klammern abgelehnt werden. Die Beschreibung behält ihre ursprüngliche Zeichensetzung und Großschreibung, darf jedoch nicht mit Leerraum beginnen oder enden. Ein Ausrufezeichen direkt vor dem Doppelpunkt kennzeichnet einen Kompatibilitätsbruch und wird gesondert zurückgegeben. Eine Fußzeile mit <code>BREAKING CHANGE</code> darf im Text verbleiben; der aktuelle boolesche Wert wird jedoch ausschließlich aus dem Headerzeichen abgeleitet und wertet Fußzeilen nicht semantisch aus.
Binden Sie die deterministische Prüfung in Abläufe ein
Nutzen Sie den Prüfer möglichst früh, sobald eine vorgeschlagene Nachricht vorliegt: in einem Commit-Editor-Hook, einer Pull-Request-Prüfung, einer Merge-Warteschlange oder einem Dienst zur Vorbereitung von Veröffentlichungsmetadaten. Ein lokaler Hook liefert die schnellste Rückmeldung. Eine serverseitige Prüfung stellt zusätzlich sicher, dass durch Automatisierung oder alternative Clients erzeugte Commits dieselbe Richtlinie einhalten. Der Parser arbeitet deterministisch und durchsucht die Zeichenfolge innerhalb fester Grenzen. Er kontaktiert keinen Repository-Anbieter, untersucht kein Git-Objekt, leitet keine Absicht aus einem Diff ab, verändert die Beschreibung nicht und nutzt keinen externen Dienst. Dieselbe Eingabe erzeugt daher im Browser und über die API dieselben Felder oder denselben Fehler. Verwenden Sie Typ, Bereich und Beschreibung als Klassifikationsdaten für Änderungsprotokolle, Veröffentlichungsregeln oder Übersichten, halten Sie projektspezifische Semantikprüfungen jedoch getrennt. Der Prüfer kann etwa bestätigen, dass <code>fix(auth): reject expired tokens</code> strukturell gültig ist. Er kann weder beweisen, dass die Änderung einen Fehler behebt, noch dass <code>auth</code> ein zulässiges Paket ist. Ergänzen Sie deshalb bei Bedarf Repository-Regeln für strengere Bereichslisten oder Ticketverweise.
Anwendungsfälle
Sichern Sie einen commit-msg-Hook ab
Lehnen Sie fehlerhafte Header sofort ab und zeigen Sie Autoren die genaue Conventional-Commits-Struktur des Repositorys.
Prüfen Sie die Merge-Automatisierung
Kontrollieren Sie durch Squash, Merge-Warteschlange oder Release-Werkzeuge erzeugte Nachrichten vor dem dauerhaften Verlauf.
Ordnen Sie Release-Eingaben ein
Lesen Sie stabile Werte für Typ, Bereich, Beschreibung und Bruchstatus zur Gruppierung oder Release-Entscheidung aus.
Häufige Fragen
Was kostet eine Prüfung?
Jede API-Anfrage kostet $0.002. Die Browserversion können Sie auch direkt auf dieser Seite ausführen.
Welche Commit-Typen werden erkannt?
Erkannt werden build, chore, ci, docs, feat, fix, perf, refactor, revert, style und test.
Ist ein Bereich erforderlich?
Nein. Sowohl feat: add export als auch feat(api): add export sind gültig. Fehlt der Bereich, wird er im Ergebnis ausgelassen.
Darf die Nachricht Text und Fußzeilen enthalten?
Ja. Die erste Zeile wird als Header geprüft; nachfolgende Zeilen bleiben Eingabe, werden aber nicht in Ausgabefelder zerlegt.
Kennzeichnet ein Ausrufezeichen einen Kompatibilitätsbruch?
Ja. Direkt vor dem Doppelpunkt setzt es den Bruchstatus auf wahr. Erklärungen, die nur in einer Fußzeile stehen, werden nicht ausgewertet.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/dev2/commit-message-lint \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"feat(parser): support escaped delimiters"}'const res = await fetch("https://api.kit.forhosting.com/dev2/commit-message-lint", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "feat(parser): support escaped delimiters"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev2/commit-message-lint",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "feat(parser): support escaped delimiters"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev2/commit-message-lint", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"feat(parser): support escaped delimiters"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"feat(parser): support escaped delimiters"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev2/commit-message-lint", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"text": "feat(parser): support escaped delimiters"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.commit_message_lint",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_chars | 100000 |
max_header_chars | 1000 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |