GitHub Actions YAML Prüfer & Formater
Führung
GitHub Actions YAML Prüfer & Formater
Fügen Sie eine GitHub Actions-Workflow-Datei in das Eingabefeld ein und erkennen Sie sofort strukturelle Fehler, veraltete Syntax und risikobehaftete Muster, bevor sie einen CI-Ausführung verursachen. Der Linter validiert Ihren Workflow gegen ein eingebautes Schema für Triggers, Jobs, Schritte, Laufzeitumgebungen, Berechtigungen und reusable Workflow-Aufrufe und formatiert das YAML mit einer workflow-bewussten Schlüsselreihenfolge, sodass jede Datei in Ihrem Repository gleich aussieht.
Nutzung
- Fügen Sie Ihre
.github/workflows/*.ymlGeben Sie eine Datei in das Eingabefeld ein, oder klicken Sie auf einen der Beispiellinks, um ein Beispiel für CI, Release oder veraltete Syntax zu laden. - Umschalten Sortieren von Schlüsseln Um die Felder nach der konventionellen GitHub Actions-Reihenfolge (Name, on, Berechtigungen, Jobs, dann pro-Job runs-on, needs, Schritte) neu zu ordnen.
- Beibehalten Validierung gegen GitHub Actions-Schema aktiviert, um fehlende erforderliche Felder, unbekannte Ereignistypen, ungültige Laufzeitbezeichner und fehlerhafte
needsReferenzen. - Beibehalten Best Practice-Hinweise anzeigen aktiviert für Vorschläge im Bereich Supply-Chain und Zuverlässigkeit (dritte Parteien-Aktionen an eine SHA binden, hinzufügen
timeout-minutes, veraltete Workflow-Befehle ersetzen). - Kopieren Sie das formatierte YAML oder laden Sie es als
.ymlDatei zum Commit bereit.
Funktionen
- Schema-Validierung – Erforderliche oberste Ebene-Felder (
on,jobs), erlaubte Trigger-Ereignisnamen, gültige Job- und Schritt-Schlüssel sowie korrekte Berechtigungsbereiche. - Regeln für reusable Workflows – Erkennung, wenn ein Job eine Mischung aus
usesist der schnelle Weg, aber es behandelt Attribute unkonsequent und kann Daten in Randfällen verlieren. Für Produktionsarbeit mit SOAP-Antworten, betrachten Sieruns-onoderstepshat, die von GitHub bei Laufzeit abgelehnt wird. - Abhängigkeitsprüfung – Flaggt selbstbezogene Verweise und Abhängigkeiten von Jobs, die nicht im Datei existieren.
- Aktion-Referenz-Parser – Erkennung von
uses:Werten, die fehlen@refoder nicht inowner/repoForm sind. - Erkennung veralteter Syntax – Warnung bei
::set-env,::set-output,::save-stateundnode12/node16Laufzeiten mit der modernen Ersatzlösung. - Best Practice-Hinweise – Vorschläge, dritte Parteien-Aktionen an eine Commit-SHA zu binden und hinzuzufügen
timeout-minutesum laufende Jobs zu verhindern. - Cron-Integritätsprüfung – Validiert, dass
on.scheduleCron-Einträge genau fünf Felder haben. - Workflow-bewusster Formatter – Ordnet die obersten, job-bewussten und schritt-bewussten Schlüssel in die konventionelle GitHub Actions-Reihenfolge für konsistente Differenzen.
- Laufend im Browser – Kein Workflow-Inhalt wird jemals an einen Server gesendet.
Häufig gestellte Fragen
-
Warum sind GitHub Actions-Workflows so anfällig für strukturelle Fehler?
Das Workflow-YAML folgt einem strengen Schema mit erforderlichen obersten Schlüsseln, festen Ereignisnamen und Job-Schlüsselregeln, die je nachdem, ob es sich um einen normalen Job oder einen reusable Workflow-Aufruf handelt, variieren. Die Datei wird nur bei einem Trigger auf GitHub geparsed, sodass ein Tippfehler in einem Schlüsselnamen oder ein unbekanntes Ereignis im Repository schweigend bleibt, bis der nächste Push oder PR fehlschlägt. Schema-basierte Linting erkennt diese Fehlerklassen vor dem Start auf dem Runner.
-
Was schützt das Fixieren einer Aktion an einer Commit-SHA tatsächlich?
GitHub Actions löst
uses: owner/action@v1auf die Commit, die derv1Tag bei Laufzeit zeigt. Da Tags mutabel sind, kann ein Maintainer (oder ein Angreifer, der das Konto des Maintainers kompromittiert) denv1auf einen bösartigen Commit verschieben, und jedes Workflow, das davon abhängt, führt beim nächsten Lauf die neue Codeversion aus. Das Fixieren an eine vollständige 40-stellige Commit-SHA friert den Quellcode der Aktion an einem bekannten Commit, sodass eine zukünftige Tagänderung nicht die Verhalten ändert. -
Warum wurden die Befehle ::set-env, ::set-output und ::save-state deaktiviert?
Diese Workflow-Befehle schrieben Umgebungsvariablen, Schritt-Ausgabewerte und gespeicherte Zustände durch die Ausgabe speziell formatierter Zeilen auf stdout. Jedes Werkzeug, das vom Runner ausgeführt wurde, konnte die gleiche Formatierung ausgeben und beliebige Werte in
GITHUB_ENVoder Schritt-Ausgabewerte einschleichen, einschließlich der Überschreibung vonPATHoder Geheimnissen, die der nächste Schritt benötigte. Die Ersatzlösungen verwenden spezielle, einseitige Dateien ($GITHUB_ENV,$GITHUB_OUTPUT,$GITHUB_STATE), die von Subprocessen nach der Ausführung nicht mehr gelesen oder geändert werden können. -
Warum fragt der Linter bei jedem Job nach einer Timeout-Minuten-Wert?
Ohne
timeout-minutesEin GitHub-hosted Job wird bei einem Laufzeitverlauf bis zu 360 Minuten (sechs Stunden) laufen, bevor die Plattform ihn abbricht. Ein hängender Prozess, eine falsch konfigurierte Wartezeit oder ein laufender Test kann den gesamten Zeitraum verbrauchen, was die Warteschlange blockiert und Minuten aus Ihrem Plan verbraucht. Die explizite Obergrenze für jeden Job verwandelt diesen schlimmsten Fall in einen schnellen Fehler, der das Problem sofort sichtbar macht.
Erweiterungen installieren
IO-Tools zu Ihrem Lieblingsbrowser hinzufügen für sofortigen Zugriff und schnellere Suche
恵 Die Anzeigetafel ist eingetroffen!
Anzeigetafel ist eine unterhaltsame Möglichkeit, Ihre Spiele zu verfolgen. Alle Daten werden in Ihrem Browser gespeichert. Weitere Funktionen folgen in Kürze!
Unverzichtbare Tools
Alle Neuheiten
AlleAktualisieren: Unser neuestes Werkzeug wurde am 20. Juni 2026 hinzugefügt
