# rhysd/actionlint

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/rhysd-actionlint).**

3,617 stars · 203 forks · Go · mit

## Links

- GitHub: https://github.com/rhysd/actionlint
- Homepage: https://rhysd.github.io/actionlint/
- awesome-repositories: https://awesome-repositories.com/repository/rhysd-actionlint.md

## Topics

`actions` `ci` `github-actions` `lint` `linter`

## Description

actionlint is a static analysis tool and linter specifically designed for GitHub Actions workflow files. It functions as a CI workflow validator and YAML configuration linter to ensure the syntax and logic of automation files are correct before deployment.

The project distinguishes itself by performing deep security auditing and script analysis. It includes a shell script auditor to detect syntax bugs and script injection vulnerabilities in inline commands, and it scans for hardcoded credentials to prevent security leaks.

The tool covers a broad range of validation capabilities, including expression type checking, job dependency verification, and the validation of reusable workflows and matrix configurations. It also verifies trigger events, cron schedules, and action metadata to ensure compatible data types and required parameters are present.

The linter can be used via the command line or integrated into IDEs for real-time feedback.

## Tags

### Development Tools & Productivity

- [Workflow Linters](https://awesome-repositories.com/f/development-tools-productivity/workflow-linters.md) — Provides comprehensive static analysis of workflow files for syntax, expressions, and security issues. ([source](https://github.com/rhysd/actionlint/blob/v1.7.12/docs/usage.md))
- [Shell Script Linters](https://awesome-repositories.com/f/development-tools-productivity/code-quality-analysis/static-analysis-engines/static-analysis-tools/code-quality-tools/shell-script-linters.md) — Integrates external checking tools to identify execution errors and syntax bugs within inline shell scripts. ([source](https://github.com/rhysd/actionlint/blob/v1.7.12/docs/api.md))
- [Graph Analysis Tools](https://awesome-repositories.com/f/development-tools-productivity/dependency-analysis-tools/code-dependency-analysis/static-dependency-resolution/graph-analysis-tools.md) — Analyzes the job dependency graph to detect invalid references or circular dependencies. ([source](https://github.com/rhysd/actionlint/blob/v1.7.12/docs/api.md))
- [Automated Linting Integrations](https://awesome-repositories.com/f/development-tools-productivity/automated-linting-integrations.md) — Enables automated linting checks within continuous integration pipelines and pre-commit hooks. ([source](https://github.com/rhysd/actionlint/blob/v1.7.12/docs/usage.md))
- [Environment Variable Validation](https://awesome-repositories.com/f/development-tools-productivity/command-argument-parsers/environment-variable-configuration/environment-variable-validation.md) — Ensures environment variable names do not contain invalid characters like equals signs or spaces. ([source](https://github.com/rhysd/actionlint/blob/v1.7.12/docs/checks.md))
- [Syntax Validators](https://awesome-repositories.com/f/development-tools-productivity/cron-scheduling/syntax-validators.md) — Checks the syntax of schedule triggers to ensure they follow the valid CRON format. ([source](https://github.com/rhysd/actionlint/blob/v1.7.12/docs/checks.md))
- [Syntax Validators](https://awesome-repositories.com/f/development-tools-productivity/file-pattern-matching/pattern-match-validators/syntax-validators.md) — Scans path and reference glob filters for syntax errors to ensure correct file matching. ([source](https://github.com/rhysd/actionlint/blob/v1.7.12/docs/api.md))
- [IDE Real-time Feedback](https://awesome-repositories.com/f/development-tools-productivity/ide-real-time-feedback.md) — Reports analysis results and remediation guidance in real time within supported text editors. ([source](https://github.com/rhysd/actionlint/blob/v1.7.12/docs/usage.md))
- [Shell Scripting Linters](https://awesome-repositories.com/f/development-tools-productivity/shell-scripting-linters.md) — Integrates with external shell scripting linters to detect bugs and syntax errors in inline commands.

### DevOps & Infrastructure

- [CI CD Pipelines](https://awesome-repositories.com/f/devops-infrastructure/ci-cd-pipelines.md) — Automates the verification of CI/CD workflow files to prevent broken deployments.
- [Environment Requirement Validators](https://awesome-repositories.com/f/devops-infrastructure/environment-requirement-validators.md) — Specifies expected runner labels and configuration variables to ensure files align with the target environment. ([source](https://github.com/rhysd/actionlint/blob/v1.7.12/docs/config.md))
- [Reusable Workflow Validators](https://awesome-repositories.com/f/devops-infrastructure/reusable-workflow-validators.md) — Checks the syntax, input types, and secret requirements for both calling and called workflows. ([source](https://github.com/rhysd/actionlint/blob/v1.7.12/docs/checks.md))
- [Workflow Event Triggers](https://awesome-repositories.com/f/devops-infrastructure/workflow-event-triggers.md) — Verifies webhook event names, activity types, and the correct use of complementary filters. ([source](https://github.com/rhysd/actionlint/blob/v1.7.12/docs/checks.md))

### Security & Cryptography

- [Shell Script](https://awesome-repositories.com/f/security-cryptography/in-memory-process-injection/injection-detection/shell-script.md) — Identifies security vulnerabilities where untrusted inputs are passed into inline shell commands. ([source](https://github.com/rhysd/actionlint/blob/v1.7.12/docs/checks.md))
- [GitHub Configuration Audits](https://awesome-repositories.com/f/security-cryptography/misconfiguration-scanning/github-configuration-audits.md) — Audits GitHub workflows for hardcoded credentials and potential script injection vulnerabilities.
- [Hardcoded Credential Detection](https://awesome-repositories.com/f/security-cryptography/identity-access-management/authentication-strategies/session-and-credential-handling/credential-security-utilities/credential-storage/hardcoded-credential-detection.md) — Scans configuration files for plain-text secrets and passwords to prevent accidental security leaks. ([source](https://github.com/rhysd/actionlint/blob/v1.7.12/docs/checks.md))

### Software Engineering & Architecture

- [Abstract Syntax Tree Parsing](https://awesome-repositories.com/f/software-engineering-architecture/abstract-syntax-tree-parsing.md) — Converts workflow configuration files into a structured syntax tree to identify and report structural or formatting errors. ([source](https://github.com/rhysd/actionlint/blob/v1.7.12/docs/api.md))
- [Linters](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/configuration-management/configuration-formats-and-schemas/yaml-configuration-files/linters.md) — Provides a specialized linter to verify schema adherence and anchor resolution for YAML automation files.
- [Workflow Configuration Validators](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/workflow-automation-integrations/ci-cd-integrations/github-actions/workflow-configuration-validators.md) — Checks GitHub Actions YAML configuration files for syntax errors and structural issues.
- [Workflow Linters](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/workflow-automation-integrations/ci-cd-integrations/github-actions/workflow-linters.md) — A static analysis tool that validates the syntax and logic of GitHub Actions workflow files.
- [Expression Type Resolution](https://awesome-repositories.com/f/software-engineering-architecture/typescript-type-definitions/static-type-checking/expression-type-resolution.md) — Performs strict type checking on expression placeholders to ensure variables and functions use compatible data types. ([source](https://github.com/rhysd/actionlint/blob/v1.7.12/docs/checks.md))
- [Usage Validators](https://awesome-repositories.com/f/software-engineering-architecture/custom-action-handlers/action-configuration-validators/usage-validators.md) — Checks that action references are correctly formatted and that all required inputs are provided. ([source](https://github.com/rhysd/actionlint/blob/v1.7.12/docs/checks.md))
- [Deprecation Management](https://awesome-repositories.com/f/software-engineering-architecture/deprecation-management.md) — Identifies the use of deprecated commands and action inputs to ensure compatibility with current standards. ([source](https://github.com/rhysd/actionlint/blob/v1.7.12/docs/checks.md))
- [Identifier Uniqueness Verifiers](https://awesome-repositories.com/f/software-engineering-architecture/identifier-uniqueness-verifiers.md) — Verifies that job and step identifiers are unique within the configuration to prevent execution conflicts. ([source](https://github.com/rhysd/actionlint/blob/v1.7.12/docs/checks.md))
- [Matrix Configuration Validators](https://awesome-repositories.com/f/software-engineering-architecture/matrix-configuration-validators.md) — Ensures exclude values exist in the matrix and identifies duplicate variations of matrix values. ([source](https://github.com/rhysd/actionlint/blob/v1.7.12/docs/checks.md))
- [Metadata Schema Validations](https://awesome-repositories.com/f/software-engineering-architecture/metadata-schema-validations.md) — Validates action inputs and outputs by comparing workflow usage against defined metadata specification files.
- [Graph Validation](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/dependency-graph-compilers/graph-validation.md) — Verifies job dependency graphs to detect circular references and undefined job identifiers.
- [Static Logic Analyzers](https://awesome-repositories.com/f/software-engineering-architecture/static-logic-analyzers.md) — Detects constant conditions in logic statements that cause workflow steps to always run or never run. ([source](https://github.com/rhysd/actionlint/blob/v1.7.12/docs/checks.md))
- [Static Type Checking](https://awesome-repositories.com/f/software-engineering-architecture/static-type-checking.md) — Ensures that inputs, outputs, and context variables in workflows use compatible data types.

### Testing & Quality Assurance

- [CI Configuration Validators](https://awesome-repositories.com/f/testing-quality-assurance/ci-configuration-validators.md) — Validates job dependencies and trigger events within continuous integration configurations.
- [Action Metadata Validators](https://awesome-repositories.com/f/testing-quality-assurance/action-metadata-validators.md) — Verifies that action inputs and outputs match metadata file definitions to ensure strict typing. ([source](https://github.com/rhysd/actionlint/blob/v1.7.12/docs/api.md))

### Web Development

- [Taint Analysis Engines](https://awesome-repositories.com/f/web-development/data-flow-architectures/taint-analysis-engines.md) — Uses taint analysis to track untrusted inputs into shell commands and detect script injection vulnerabilities.

### Content Management & Publishing

- [Reference Anchors](https://awesome-repositories.com/f/content-management-publishing/content-management-systems/content-architecture-modeling/document-models/document-sectioning/anchor-links/reference-anchors.md) — Evaluates YAML anchors and aliases to ensure the resulting expanded configuration is valid and error-free. ([source](https://github.com/rhysd/actionlint/blob/v1.7.12/docs/checks.md))

### Operating Systems & Systems Programming

- [Script Security Auditors](https://awesome-repositories.com/f/operating-systems-systems-programming/terminal-command-line-environments/shells-scripting/script-security-auditors.md) — Checks inline scripts within workflow commands for syntax errors and script injection vulnerabilities.

### Programming Languages & Runtimes

- [Abstract Syntax Tree Parsers](https://awesome-repositories.com/f/programming-languages-runtimes/abstract-syntax-tree-parsers.md) — Implements a parser that transforms YAML workflow text into a structured syntax tree for deep logic analysis.
