DEV Community

Tomoyuki KOYAMA
Tomoyuki KOYAMA

Posted on

Automatic Python Code Format with GitHub Actions

This post introduces a method for beautifying Python Code with GitHub Actions. The method utilizes three tools: autopep8, Black, isort. In addition, a Pull Request, which contains formatted codes is created by GitHub Actions.

The YAML file shows the configuration of the automatic code formatter.

name: Format Python Code
on: push
jobs:
  python-code-format:
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-python@v4
        with:
          python-version: "3.10"
          architecture: "x64"
      - name: Display Python version
        run: python --version
      - name: Install packages
        run: pip install black autopep8 isort
      - name: Formatter
        run: |
          black .
          autopep8 --recursive --in-place --aggressive --aggressive .
          isort .
      - name: Create Pull Request
        uses: peter-evans/create-pull-request@v3
        with:
          commit-message: Auto code format
          title: Fixes by format action
          body: This is an auto-generated PR with fixes.
          labels: automated pr
          branch: python-code-format-patches
Enter fullscreen mode Exit fullscreen mode

The summary of this configuration file is shown as follows:

  • Setup Ubuntu 20.04
  • Setup Python 3.10
  • Install Python packages (black, autopep8, isort) by pip
  • Formatting Python Codes
  • Create Pull Request

The CI works as follows:

Image description

Top comments (0)