actionlint
Actionlint Tool Analysis
Overview
Actionlint is a linter for GitHub Actions workflow files. This analysis compares Lintro’s wrapper with the core Actionlint tool.
Core Tool Capabilities
- Workflow linting: Checks YAML under
.github/workflows/ - ShellCheck integration: Lints shell snippets in
run:steps - Rule configuration: Enable/disable specific checks via config or flags
- Formatting: Default text output,
-format/-oneline, color toggles
Lintro Implementation Analysis
✅ Preserved Features
- ✅ Uses default Actionlint output; robust parser maps to structured issues
- ✅ Filters input files to
/.github/workflows/paths - ✅ Respects workflow discovery through file walking
⚠️ Defaults and Notes
- ⚠️ No flags by default (portable across versions and platforms)
- ⚠️ ShellCheck behavior left to upstream defaults
🚀 Enhancements
- ✅ Normalized output (tables/JSON) via Lintro formatters
- ✅ Unified CLI and reporting experience
Usage Comparison
Core Actionlint
actionlint .github/workflows/ci.yml
actionlint -no-color -format oneline .github/workflows/
Lintro Wrapper
from lintro.tools.implementations.tool_actionlint import ActionlintTool
tool = ActionlintTool()
result = tool.check(["."])
⚠️ Limited/Missing Features
- ⚠️ ShellCheck toggles (
-shellcheck,-no-shellcheck) not exposed - ⚠️ Config path (
-config-file) not exposed - ⚠️ Rule enable/disable flags not exposed
- ⚠️ Output formatting flags (
-format,-oneline, color) not exposed
🔧 Proposed runtime pass-throughs
--tool-options actionlint:shellcheck=False--tool-options actionlint:config=.actionlint.yaml--tool-options actionlint:disable=rule1|rule2--tool-options actionlint:format=oneline,actionlint:no_color=True
Recommendations
- Keep defaults minimal; add pass-throughs where CI or local workflows need parity with upstream CLI settings.