From a3b9f7e0f00e21d62df5803f95e2befc19603d13 Mon Sep 17 00:00:00 2001 From: Ethan Knox Date: Sun, 8 Sep 2024 18:36:57 -0400 Subject: [PATCH] feat: autocommit linting (#1682) --- .github/workflows/black_format.yml | 26 ++++++++++---------------- .github/workflows/isort_format.yml | 17 +++++++++++------ 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/.github/workflows/black_format.yml b/.github/workflows/black_format.yml index c1fa7bb3..fb753d32 100644 --- a/.github/workflows/black_format.yml +++ b/.github/workflows/black_format.yml @@ -25,22 +25,16 @@ jobs: run: poetry run black --check . continue-on-error: true - - name: Check Black Output - if: steps.black.outcome == 'failure' + - name: Auto-fix with Black and commit + if: steps.black.outcome == 'failure' || ${{ !contains(github.event.issue.labels.*.name, 'check-only') }} run: | - echo "Black check failed. To fix, please run 'poetry run black .'" - exit 1 + black . + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + git commit -am "Apply Black formatting" || echo "No changes to commit" + git push + - name: Error if 'check-only' label is present + if: steps.black.outcome == 'failure' && contains(github.event.issue.labels.*.name, 'check-only') + run: echo "Black formatting check failed. Please run 'black .' locally to fix formatting issues." && exit 1 - - # (Optional) If you want to automatically fix formatting issues - # Uncomment the following steps: - - # - name: Auto-fix with Black and commit - # if: failure() - # run: | - # black . - # git config --local user.email "action@github.com" - # git config --local user.name "GitHub Action" - # git commit -am "Apply Black formatting" || echo "No changes to commit" - # git push diff --git a/.github/workflows/isort_format.yml b/.github/workflows/isort_format.yml index 9e645cb5..d31b7b68 100644 --- a/.github/workflows/isort_format.yml +++ b/.github/workflows/isort_format.yml @@ -25,10 +25,15 @@ jobs: run: poetry run isort --profile black --check-only . continue-on-error: true - - name: Check isort Output - if: steps.isort.outcome == 'failure' + - name: Auto-fix with isort and commit + if: steps.isort.outcome == 'failure' || ${{ !contains(github.event.issue.labels.*.name, 'check-only') }} run: | - poetry run isort --version - poetry run python --version - echo "isort check failed. To fix, please run 'poetry run isort --profile black .'" - exit 1 + poetry run isort --profile black . + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + git commit -am "Apply isort import ordering" || echo "No changes to commit" + git push + - name: Error if 'check-only' label is present + if: steps.isort.outcome == 'failure' && contains(github.event.issue.labels.*.name, 'check-only') + run: echo "Isort check failed. Please run 'isort .' locally to fix import orders." && exit 1 +