Github a livré Super Linter, une GitHub Action combinant différents analyseurs de code ou linters destinée à simplifier la validation du code source. En créant un référentiel GitHub pour appeler l’action Super Linter, les développeurs peuvent demander à Super Linter de vérifier automatiquement leur code chaque fois qu'ils ouvrent une requête pull et détecter ainsi les éventuelles erreurs ou savoir si les modifications apportées à leur code sont correctes.

Super Linter a été créé par l'équipe d'ingénieurs des services Devops de GitHub pour maintenir la cohérence de la documentation et du code. Il vise aussi à améliorer la collaboration au sein de l'entreprise. Présenté comme un « linter unique pour tout type de code », le Super Linter est un référentiel GitHub packagé dans un conteneur Docker et appelé par les GitHub Actions. Cela signifie que tout référentiel GitHub peut appeler Super Linter et l’utiliser.

Super Linter offre les avantages suivants :

- Il empêche le téléchargement de code cassé dans les branches principales.

- Il établit de meilleures pratiques de codage dans différents langages.

- Il établit des directives de build pour le formatage et la mise en page du code.

- Il rationalise les examens de code.

- Il permet de délivrer un code plus propre et plus stable.

Langages et linters pris en charge par Super Linter :

- Ansible, ansible-lint

- CSS, stylelint

- CoffeeScript, coffeelint

- Dockerfile, dockerfilelint

- Golang, golangci-lint

- JavaScript et TypeScript, eslint standard js

- JSON, jsonlint

- Python 3, pylint

- Kotlin, ktlint

La liste complète des linters supportés est disponible sur GitHub.

Les développeurs peuvent utiliser Super Linter en l'ajoutant à leur workflow GitHub Actions. Une fois que les développeurs ont configuré leur référentiel pour lui permettre de supporter l'action de Super Linter, chaque requête pull ouverte lancera l’analyse de la base de code et les résultats de l’analyse seront retransmis via l'API d'état. Les développeurs sauront alors si les changements apportés au code ont été correctement effectués ou si des erreurs ont été détectées et à quels endroits elles se sont produites.