Update mega-linter.yml #3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# MegaLinter GitHub Action configuration file | |
# More info at https://megalinter.io | |
name: MegaLinter | |
on: | |
push: | |
branches: [main, master] | |
pull_request: | |
branches: [main, master] | |
env: | |
APPLY_FIXES: "PYTHON_BLACK,PYTHON_ISORT" # Apply fixes only for Black and Isort | |
APPLY_FIXES_EVENT: pull_request # Apply fixes only during pull requests | |
APPLY_FIXES_MODE: commit # Commit fixes directly to the branch | |
VALIDATE_ALL_CODEBASE: true # Validate all files in the repository | |
LOG_LEVEL: DEBUG # Enable verbose logging for debugging | |
concurrency: | |
group: ${{ github.ref }}-${{ github.workflow }} | |
cancel-in-progress: true | |
jobs: | |
megalinter: | |
name: MegaLinter | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
issues: write | |
pull-requests: write | |
steps: | |
# Git Checkout | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
with: | |
token: ${{ secrets.PAT || secrets.GITHUB_TOKEN }} | |
fetch-depth: 0 # Fetch full history to allow linting of all files | |
# MegaLinter | |
- name: MegaLinter | |
id: ml | |
uses: oxsecurity/megalinter@v8 | |
env: | |
FLAVOR: python # Use the Python flavor to optimize performance | |
ENABLE_LINTERS: "PYTHON_FLAKE8,PYTHON_PYLINT,PYTHON_BLACK,PYTHON_ISORT,JSON_JSONLINT" # Enable specific linters for Python and JSON | |
DISABLE_LINTERS: "COPYPASTE,SPELL" # Disable unnecessary linters | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# Upload MegaLinter artifacts | |
- name: Archive production artifacts | |
if: success() || failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: MegaLinter reports | |
path: | | |
megalinter-reports | |
mega-linter.log | |
# Create pull request if applicable | |
- name: Create Pull Request with applied fixes | |
id: cpr | |
if: steps.ml.outputs.has_updated_sources == 1 && (env.APPLY_FIXES_EVENT == 'all' || env.APPLY_FIXES_EVENT == github.event_name) && env.APPLY_FIXES_MODE == 'pull_request' && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) && !contains(github.event.head_commit.message, 'skip fix') | |
uses: peter-evans/create-pull-request@v6 | |
with: | |
token: ${{ secrets.PAT || secrets.GITHUB_TOKEN }} | |
commit-message: "[MegaLinter] Apply linters automatic fixes" | |
title: "[MegaLinter] Apply linters automatic fixes" | |
labels: bot | |
# Commit and push applied linter fixes | |
- name: Commit and push applied linter fixes | |
if: steps.ml.outputs.has_updated_sources == 1 && (env.APPLY_FIXES_EVENT == 'all' || env.APPLY_FIXES_EVENT == github.event_name) && env.APPLY_FIXES_MODE == 'commit' && github.ref != 'refs/heads/main' && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) && !contains(github.event.head_commit.message, 'skip fix') | |
uses: stefanzweifel/git-auto-commit-action@v4 | |
with: | |
branch: ${{ github.event.pull_request.head.ref || github.head_ref || github.ref }} | |
commit_message: "[MegaLinter] Apply linters fixes" | |
commit_user_name: megalinter-bot | |
commit_user_email: [email protected] |