diff --git a/.github/workflows/format-python.yml b/.github/workflows/format-python.yml index f5f84e1..9e00cd8 100644 --- a/.github/workflows/format-python.yml +++ b/.github/workflows/format-python.yml @@ -1,23 +1,63 @@ -name: Format Python +name: Ensure formatted code on: pull_request: types: [ opened, edited, reopened, synchronize, ready_for_review ] workflow_dispatch: + +permissions: + contents: read + pull-requests: write + jobs: - format: + format_check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - with: - repository: ${{ github.event.pull_request.head.repo.full_name }} - ref: ${{ github.event.pull_request.head.ref }} - - name: Format code with black + - name: Install ruff + run: pip install ruff + - name: Check formatting for Python code + env: + GH_TOKEN: ${{ github.token }} run: | - pip install black - black --line-length 120 . - - name: Commit changes - uses: EndBug/add-and-commit@v9 - with: - default_author: github_actions - message: "Formatted code with black --line-length 120" - add: "." + set +e + format_output=$(ruff format --check) + exit_code=$? + if [ $exit_code -eq 0 ]; then + echo "All Python code is properly formatted." + gh pr comment ${{ github.event.pull_request.number }} --body "All Python code is properly formatted." + else + echo "$format_output" + echo "Some Python code is not properly formatted." + echo "Please run 'ruff format' to format the code." + gh pr comment ${{ github.event.pull_request.number }} --body < check_output.txt + # echo "Some Python code has linting errors." >> check_output.txt + # echo "Please run 'ruff check --fix' to fix the errors." >> check_output.txt + # gh pr comment ${{ github.event.pull_request.number }} --body "```\n$(cat check_output.txt)\n```" + # exit 1 + # fi