Super-Linter Overview

Super-linter is a ready-to-run collection of linters and code analyzers designed to help validate and fix your source code. Its primary goal is to establish best practices and consistent formatting across multiple programming languages, ensuring developers adhere to established conventions.

As a versatile developer tool, Super-linter can be seamlessly integrated into your CI/CD pipeline as a GitHub Action or run locally using Docker. It analyzes your source code, reports issues through console output and GitHub Actions status checks, and can even automatically fix many of the detected problems.

Key Features

  • All-in-One Linter: A single tool to lint a wide variety of languages, removing the need to manage multiple linters in each repository.
  • Highly Configurable: Use environment variables and configuration files to enable/disable linters, apply custom rulesets, and tailor the behavior to your project's specific needs.
  • GitHub Actions Native: Designed to work flawlessly as a GitHub Action, providing status checks and annotations directly in your pull requests.
  • Run Anywhere: Packaged as a Docker container, it can be executed in any environment that supports Docker, including local development machines and other CI systems like GitLab.
  • Auto-Fixing: Supports an optional "fix mode" that automatically corrects linting and formatting errors, which can be configured to commit changes back to your branch.
  • Extensive Language Support: Comes pre-configured with linters for dozens of popular languages and formats. See the Supported Linters page for a complete list.
  • Slim & Standard Variants: Choose between a comprehensive standard image with all linters or a lightweight slim image for faster execution when you don't need tools for languages like .NET or Rust.

How It Works

Super-Linter operates by running a curated set of individual linters against your codebase. When run in a GitHub Actions workflow, it automatically detects which files have changed in a pull request or push event and lints only those files, ensuring fast feedback. You can also configure it to lint the entire codebase.

When running locally, you mount your code as a volume into the Docker container, giving the linter access to your files for analysis.

Ready to get started? Head to the Installation & Quick Start guide.