Awesome
Action-black GitHub Action
[!IMPORTANT]
The official psf/black action has been released! 🚀 - Because of this, this repository's action is no longer trivial. Therefore, you are advised to use the official black action. Some features in this action are not in the official action. The differences between the two actions are documented in https://github.com/rickstaa/action-black/issues/10. If you think features are missing, please open a pull request.
This action runs the black formatter to check/format your python code on a push or pull request. It is similar to reviewdog/action-black that can annotate the black changes required with Reviewdog. However, this version also allows you to format the code using GitHub actions (see #advanced-use-cases).
Quickstart
In it's simplest form this action can be used to check/format your code using the black formatter.
name: black-action
on: [push, pull_request]
jobs:
linter_name:
name: runner / black formatter
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: rickstaa/action-black@v1
with:
black_args: ". --check"
Inputs
black_args
optional: Black input arguments. Defaults to . --check --diff
.
fail_on_error
optional: Exit code when black formatting errors are found [true, false]. Defaults to 'true'.
Outputs
is_formatted
Boolean specifying whether any files were formatted using the black formatter.
Advanced use cases
Annotate changes
This action can be combined with reviewdog/action-suggester also to annotate any possible changes (uses git diff
).
name: black-action
on: [push, pull_request]
jobs:
linter_name:
name: runner / black
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check files using the black formatter
uses: rickstaa/action-black@v1
id: action_black
with:
black_args: "."
- name: Annotate diff changes using reviewdog
if: steps.action_black.outputs.is_formatted == 'true'
uses: reviewdog/action-suggester@v1
with:
tool_name: blackfmt
Commit changes or create a pull request
This action can be combined with peter-evans/create-pull-request to also apply the annotated changes to the repository.
name: black-action
on: [push, pull_request]
jobs:
linter_name:
name: runner / black
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check files using the black formatter
uses: rickstaa/action-black@v1
id: action_black
with:
black_args: "."
- name: Create Pull Request
if: steps.action_black.outputs.is_formatted == 'true'
uses: peter-evans/create-pull-request@v6
with:
token: ${{ secrets.GITHUB_TOKEN }}
title: "Format Python code with psf/black push"
commit-message: ":art: Format Python code with psf/black"
body: |
There appear to be some python formatting errors in ${{ github.sha }}. This pull request
uses the [psf/black](https://github.com/psf/black) formatter to fix these issues.
base: ${{ github.head_ref }} # Creates pull request onto pull request or commit branch
branch: actions/black
Contributing
Feel free to open an issue if you have ideas on how to make this GitHub action better or if you want to report a bug! All contributions are welcome. :rocket: Please consult the contribution guidelines for more information.