Files
actions/eslint-lint
Ismo Vuorinen 9aa16a8164 feat: use our own actions in our workflows (#377)
* feat: use our own actions in our workflows

* fix: add missing inputs to validate-inputs, refactor node

* chore: cr comment fixes

* fix: update-validators formatting

* chore: update validators, add tests, conventions

* feat: validate severity with severity_enum

* feat: add 10 generic validators to improve input validation coverage

Add comprehensive validation system improvements across multiple phases:

Phase 2A - Quick Wins:
- Add multi_value_enum validator for 2-10 value enumerations
- Add exit_code_list validator for Unix/Linux exit codes (0-255)
- Refactor coverage_driver to use multi_value_enum

Phase 2B - High-Value Validators:
- Add key_value_list validator with shell injection prevention
- Add path_list validator with path traversal and glob support

Quick Wins - Additional Enums:
- Add network_mode validator for Docker network modes
- Add language_enum validator for language detection
- Add framework_mode validator for PHP framework modes
- Update boolean pattern to include 'push'

Phase 2C - Specialized Validators:
- Add json_format validator for JSON syntax validation
- Add cache_config validator for Docker BuildKit cache configs

Improvements:
- All validators include comprehensive security checks
- Pattern-based validation with clear error messages
- 23 new test methods with edge case coverage
- Update special case mappings for 20+ inputs
- Fix build-args mapping test expectation

Coverage impact: 22 actions now at 100% validation (88% → 92%)
Test suite: 762 → 785 tests (+23 tests, all passing)

* chore: regenerate rules.yml with improved validator coverage

Regenerate validation rules for all actions with new validators:

- compress-images: 86% → 100% (+1 input: ignore-paths)
- docker-build: 63% → 100% (+4 inputs: cache configs, platform-build-args)
- docker-publish: 73% → 100% (+1 input: build-args)
- language-version-detect: 67% → 100% (+1 input: language)
- php-tests: 89% (fixed framework→framework_mode mapping)
- prettier-lint: 86% → 100% (+2 inputs: file-pattern, plugins)
- security-scan: 86% (maintained coverage)

Overall: 23 of 25 actions now at 100% validation coverage (92%)

* fix: address PR #377 review comments

- Add | None type annotations to 6 optional parameters (PEP 604)
- Standardize injection pattern: remove @# from comma_separated_list validator
  (@ and # are not shell injection vectors, allows npm scoped packages)
- Remove dead code: unused value expression in key_value_list validator
- Update tests to reflect injection pattern changes
2025-11-25 23:51:03 +02:00
..
2025-11-25 13:31:36 +02:00
2025-11-19 15:42:06 +02:00

ivuorinen/actions/eslint-lint

ESLint Lint

Description

Run ESLint in check or fix mode with advanced configuration and reporting

Inputs

name description required default
mode

Mode to run (check or fix)

false check
working-directory

Directory containing files to lint

false .
eslint-version

ESLint version to use

false latest
config-file

Path to ESLint config file

false .eslintrc
ignore-file

Path to ESLint ignore file

false .eslintignore
file-extensions

File extensions to lint (comma-separated)

false .js,.jsx,.ts,.tsx
cache

Enable ESLint caching

false true
max-warnings

Maximum number of warnings allowed (check mode only)

false 0
fail-on-error

Fail workflow if issues are found (check mode only)

false true
report-format

Output format for check mode (stylish, json, sarif)

false sarif
max-retries

Maximum number of retry attempts

false 3
token

GitHub token for authentication

false ""
username

GitHub username for commits (fix mode only)

false github-actions
email

GitHub email for commits (fix mode only)

false github-actions@github.com

Outputs

name description
status

Overall status (success/failure)

error-count

Number of errors found (check mode only)

warning-count

Number of warnings found (check mode only)

sarif-file

Path to SARIF report file (check mode only)

files-checked

Number of files checked (check mode only)

files-changed

Number of files changed (fix mode only)

errors-fixed

Number of errors fixed (fix mode only)

Runs

This action is a composite action.

Usage

- uses: ivuorinen/actions/eslint-lint@main
  with:
    mode:
    # Mode to run (check or fix)
    #
    # Required: false
    # Default: check

    working-directory:
    # Directory containing files to lint
    #
    # Required: false
    # Default: .

    eslint-version:
    # ESLint version to use
    #
    # Required: false
    # Default: latest

    config-file:
    # Path to ESLint config file
    #
    # Required: false
    # Default: .eslintrc

    ignore-file:
    # Path to ESLint ignore file
    #
    # Required: false
    # Default: .eslintignore

    file-extensions:
    # File extensions to lint (comma-separated)
    #
    # Required: false
    # Default: .js,.jsx,.ts,.tsx

    cache:
    # Enable ESLint caching
    #
    # Required: false
    # Default: true

    max-warnings:
    # Maximum number of warnings allowed (check mode only)
    #
    # Required: false
    # Default: 0

    fail-on-error:
    # Fail workflow if issues are found (check mode only)
    #
    # Required: false
    # Default: true

    report-format:
    # Output format for check mode (stylish, json, sarif)
    #
    # Required: false
    # Default: sarif

    max-retries:
    # Maximum number of retry attempts
    #
    # Required: false
    # Default: 3

    token:
    # GitHub token for authentication
    #
    # Required: false
    # Default: ""

    username:
    # GitHub username for commits (fix mode only)
    #
    # Required: false
    # Default: github-actions

    email:
    # GitHub email for commits (fix mode only)
    #
    # Required: false
    # Default: github-actions@github.com