GitHub Actions YAML Linter & Formatter
Guide
GitHub Actions YAML Linter & Formatter
Collez un fichier de workflow GitHub Actions dans la zone de saisie, ou cliquez sur l'un des liens d'exemple pour charger un exemple de CI, de publication ou de syntaxe obsolète.
Comment utiliser
- Collez votre
.github/workflows/*.ymlTri des clés - Basculer pour réorganiser les champs selon l'ordre canonique de GitHub Actions (nom, sur, permissions, jobs, puis pour chaque job runs-on, needs, steps). activé pour détecter des champs manquants, des types d'événements inconnus, des étiquettes de runners invalides et des structures cassées
- , tâches sans module, listes mal formées) pour des suggestions de bonnes pratiques comme les noms de modules FQCN, manque de noms, et les avertissements d'idempotence. Validation selon le schéma GitHub Actions activé pour des suggestions relatives à la chaîne d'approvisionnement et à la fiabilité (fixer les actions tierces à une version SHA, ajouter
needsréférences. - , tâches sans module, listes mal formées) pour des suggestions de bonnes pratiques comme les noms de modules FQCN, manque de noms, et les avertissements d'idempotence. Affichage de suggestions de bonnes pratiques , remplacer les commandes obsolètes du workflow).
timeout-minutesCopiez le YAML formaté ou téléchargez-le sous forme de - fichier prêt à commiter.
.ymlValidation du schéma
Caractéristiques
- – Champs de niveau supérieur requis ( ), noms d'événements autorisés, clés valides pour les jobs et les étapes, et portées correctes des permissions.
on,jobsRègles sur les workflows réutilisables - – Détecte quand un job mélange , ce que GitHub refusera à l'exécution.
usesavecruns-onoustepsvérification du graphe des dépendances - – Indique les références mutuelles et les dépendances vers des jobs qui n'existent pas dans le fichier. Analyseur de références d'actions
- – Détecte les valeurs manquantes ou non conformes à
uses:format.@refDétection de la syntaxe obsolèteowner/repo– Met en garde contre les runtimes avec leur remplacement moderne. - Suggestions de bonnes pratiques – Suggère de fixer les actions tierces à une version SHA et d'ajouter
::set-env,::set-output,::save-stateetnode12/node16pour éviter les jobs qui s'étendent indéfiniment. - Vérification de la cron – Valide que les entrées cron ont exactement cinq champs.
timeout-minutesFormatage sensible au workflow - – Réorganise les clés au niveau du workflow, du job et de l'étape selon l'ordre conventionnel de GitHub Actions pour des diffs cohérents. – Aucun contenu de workflow n'est envoyé vers un serveur.
on.schedulePourquoi les workflows GitHub Actions sont-ils si sensibles aux erreurs structurelles ? - Le fichier YAML de workflow GitHub Actions suit un schéma strict avec des clés de niveau supérieur obligatoires, des noms d'événements fixes et des règles de clés par job qui varient selon que le job est un job normal ou une appel de workflow réutilisable. Le fichier est uniquement analysé lorsqu'un déclencheur est déclenché sur GitHub, donc une erreur de nom de clé ou un événement inconnu reste silencieusement dans le dépôt jusqu'à ce que le prochain push ou PR échoue. La vérification par schéma détecte ces types d'erreurs avant qu'ils n'atteignent le runner. Qu'est-ce que la fixation d'une action à une version SHA protège réellement contre ?
- Fonctionne entièrement dans votre navigateur GitHub Actions résout
FAQ
-
à la version du
au moment de l'exécution. Puisque les tags sont modifiables, un mainteneur (ou un attaquant qui compromet le compte du mainteneur) peut déplacer
-
vers une version malveillante et chaque workflow dépendant de cette action exécutera le nouveau code à la prochaine exécution. Fixer une action à une version complète de 40 caractères de SHA congèle le code source de l'action à une révision connue, de sorte qu'une modification future du tag ne puisse pas remplacer silencieusement le comportement.
Pourquoi les commandes ::set-env, ::set-output et ::save-state ont-elles été dépréciées ?
uses: owner/action@v1Ces commandes de workflow écrivaient des variables d'environnement, des sorties d'étapes et des états sauvegardés en émettant des lignes spécialement formatées sur stdout. Tout outil exécuté par le runner pouvait imprimer ce format et injecter des valeurs arbitraires dansv1ou les sorties d'étapes, y compris la surcharge dev1ou des secrets utilisés par l'étape suivante. Les remplacements utilisent des fichiers dédiés et en lecture seule ( -
) que les sous-processus ne peuvent pas lire ou modifier après le fait.
Pourquoi le linter demande-t-il une valeur de timeout en minutes pour chaque job ?
GITHUB_ENV, un job hébergé sur GitHub s'exécute jusqu'à 360 minutes (six heures) avant que la plateforme ne le cancèle. Un processus bloqué, une attente mal configurée ou un test qui s'étend peut consommer l'ensemble de cette fenêtre, bloquant la file d'attente et gaspillant des minutes de votre plan. Avoir un seuil explicite sur chaque job transforme ce pire cas en un échec rapide qui met en évidence immédiatement le bug.PATHCollez ici le contenu de votre .github/workflows/*.yml$GITHUB_ENV,$GITHUB_OUTPUT,$GITHUB_STATELinter et formatage YAML GitHub Actions 1 -
Linter et formatage YAML GitHub Actions
Sans
timeout-minutesCollez un fichier de workflow GitHub Actions dans la zone de saisie et détectez instantanément des structures cassées, des syntaxes obsolètes et des modèles risqués avant qu'ils ne provoquent un échec d'un run CI. Le linter
Installez nos extensions
Ajoutez des outils IO à votre navigateur préféré pour un accès instantané et une recherche plus rapide
恵 Le Tableau de Bord Est Arrivé !
Tableau de Bord est une façon amusante de suivre vos jeux, toutes les données sont stockées dans votre navigateur. D'autres fonctionnalités arrivent bientôt !
Outils essentiels
Tout voir Nouveautés
Tout voirMise à jour: Notre dernier outil was added on Juin 26, 2026
