mirror of
https://github.com/ivuorinen/actions.git
synced 2026-01-27 19:39:29 +00:00
Replace language-version-detect dependency with inline version detection for the Python linting action. Detection logic checks (in priority order): - .tool-versions file (python key) - Dockerfile (FROM python: image) - devcontainer.json (python: image) - .python-version file - pyproject.toml (requires-python field) Implementation details: - POSIX sh compliant with `set -eu` - Validates version format: X.Y or X.Y.Z - Normalizes versions: strips 'v' prefix, whitespace, line endings - Uses `sed -E` for portable extended regex (Dockerfile/devcontainer) - Uses basic sed for pyproject.toml (POSIX-compatible backslash escapes) - Conditional jq usage with diagnostic messages - Maintains output contract (detected-version) Changes: - python-lint-fix: ~110 lines of inline detection + jq diagnostics - README regenerated with action-docs Benefits: - Eliminates external dependency for Python version detection - Reduces action initialization time - Improved debugging (diagnostic messages, all logic in one file) - Consistent with go-build and csharp pattern
ivuorinen/actions/python-lint-fix
Python Lint and Fix
Description
Lints and fixes Python files, commits changes, and uploads SARIF report.
Inputs
| name | description | required | default |
|---|---|---|---|
python-version |
Python version to use |
false |
3.11 |
flake8-version |
Flake8 version to use |
false |
7.0.0 |
autopep8-version |
Autopep8 version to use |
false |
2.0.4 |
max-retries |
Maximum number of retry attempts for installations and linting |
false |
3 |
working-directory |
Directory containing Python files to lint |
false |
. |
fail-on-error |
Whether to fail the action if linting errors are found |
false |
true |
token |
GitHub token for authentication |
false |
"" |
username |
GitHub username for commits |
false |
github-actions |
email |
GitHub email for commits |
false |
github-actions@github.com |
Outputs
| name | description |
|---|---|
lint-result |
Result of the linting process (success/failure) |
fixed-files |
Number of files that were fixed |
error-count |
Number of errors found |
Runs
This action is a composite action.
Usage
- uses: ivuorinen/actions/python-lint-fix@main
with:
python-version:
# Python version to use
#
# Required: false
# Default: 3.11
flake8-version:
# Flake8 version to use
#
# Required: false
# Default: 7.0.0
autopep8-version:
# Autopep8 version to use
#
# Required: false
# Default: 2.0.4
max-retries:
# Maximum number of retry attempts for installations and linting
#
# Required: false
# Default: 3
working-directory:
# Directory containing Python files to lint
#
# Required: false
# Default: .
fail-on-error:
# Whether to fail the action if linting errors are found
#
# Required: false
# Default: true
token:
# GitHub token for authentication
#
# Required: false
# Default: ""
username:
# GitHub username for commits
#
# Required: false
# Default: github-actions
email:
# GitHub email for commits
#
# Required: false
# Default: github-actions@github.com