Esta página se muestra en inglés. Una traducción al español está en curso.
ScriptsApr 26, 2026·3 min de lectura

Super-Linter — Multi-Language Linter Aggregator for CI

Super-Linter combines dozens of linters into a single GitHub Action or standalone Docker container, enforcing code quality across languages in one step.

Introduction

Super-Linter is an open-source project that bundles over 50 linters into a single Docker image. Originally created at GitHub, it runs as a GitHub Action or standalone container, scanning your entire repository for style violations, syntax errors, and best-practice issues across dozens of languages and file formats.

What Super-Linter Does

  • Runs 50+ linters covering languages like Python, JavaScript, Go, Ruby, Shell, YAML, Dockerfile, and more
  • Integrates as a one-step GitHub Action for pull request and push event checks
  • Reports inline annotations directly on GitHub pull requests
  • Supports running as a standalone Docker container in any CI system
  • Detects which linters to enable based on the file types present in the repository

Architecture Overview

Super-Linter is packaged as a Docker image that contains all supported linters pre-installed. On each run, a Shell entrypoint script detects which file types exist in the repository, activates the corresponding linters, and collects their output. Results are formatted and optionally posted back to GitHub as check annotations via the GitHub API.

Self-Hosting & Configuration

  • Add the GitHub Action to any workflow file with super-linter/super-linter@v7
  • Run standalone with docker run -e RUN_LOCAL=true -v /path/to/repo:/tmp/lint super-linter/super-linter
  • Disable specific linters by setting environment variables like VALIDATE_PYTHON=false
  • Place language-specific config files (.eslintrc, .flake8, .rubocop.yml) in the repo root
  • Use FILTER_REGEX_INCLUDE or FILTER_REGEX_EXCLUDE to target specific paths

Key Features

  • 50+ linters in a single container covering most popular languages and config formats
  • Zero-config default setup that auto-detects file types in your repository
  • Inline GitHub annotations showing exactly where issues occur in pull requests
  • Environment-variable-based configuration for enabling, disabling, and tuning each linter
  • Works as a GitHub Action, GitLab CI job, or standalone Docker container

Comparison with Similar Tools

  • MegaLinter — fork of Super-Linter with additional linters and a reporter UI; heavier image size
  • pre-commit — runs hooks locally before commits; Super-Linter focuses on CI-side enforcement
  • trunk — commercial multi-linter tool with a local CLI; Super-Linter is fully open source
  • ESLint / Flake8 / ShellCheck — individual linters for one language; Super-Linter aggregates them all
  • Reviewdog — posts linter results as PR comments; Super-Linter bundles both linting and reporting

FAQ

Q: Does Super-Linter support custom linter configurations? A: Yes. Place standard config files (.eslintrc.json, .flake8, etc.) in your repository root and Super-Linter will pick them up automatically.

Q: Can I run Super-Linter outside GitHub Actions? A: Yes. Run the Docker image directly with RUN_LOCAL=true in any CI system or on your local machine.

Q: How do I lint only changed files? A: Set VALIDATE_ALL_CODEBASE=false to lint only files changed in the current push or pull request.

Q: Does Super-Linter support custom linters? A: You can extend the Docker image with additional tools, but the built-in configuration system covers the bundled linters only.

Sources

Discusión

Inicia sesión para unirte a la discusión.
Aún no hay comentarios. Sé el primero en compartir tus ideas.

Activos relacionados