# GitHub Action that uses Black to reformat Python code (if needed) when doing a git push.
# If all Python code in the repo is compliant with Black then this Action does nothing.
# Otherwise, Black is run and its changes are committed to the repo.
# https://github.com/cclauss/autoblack

name: autoblack_push
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1  # Use v1, NOT v2
      - uses: actions/setup-python@v2
      - run: pip install black
      - run: black --check .
      - name: If needed, commit black changes to a new pull request
        if: failure()
        run: |
          black --line-length 80 .
          git config --global user.name github-actions
          git config --global user.email '${GITHUB_ACTOR}@users.noreply.github.com'          
          git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/$GITHUB_REPOSITORY
          git commit -am "fixup! Format Python code with psf/black push"
          git push --force origin HEAD:$GITHUB_REF
