Fork of pre-commit/action
with a fix to make it install correction on GA Windows runners (see pre-commit#141 and actions/toolkit#992).
Released as simonwiles/precommit-action@v2.0.4
.
Original README.md
follows below:
DEPRECATED this action is in maintenance-only mode and will not be accepting new features.
Please switch to using pre-commit.ci which is faster and has more features.
pre-commit/action
a GitHub action to run pre-commit
using this action
To use this action, make a file .github/workflows/pre-commit.yml
. Here's a
template to get started:
name: pre-commit
on:
pull_request:
push:
branches: [master]
jobs:
pre-commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: pre-commit/action@v2.0.3
This does a few things:
- clones the code
- installs python
- sets up the
pre-commit
cache
using this action with custom invocations
By default, this action runs all the hooks against all the files. extra_args
lets users specify a single hook id and/or options to pass to pre-commit run
.
Here's a sample step configuration that only runs the flake8
hook against all
the files (use the template above except for the pre-commit
action):
- uses: pre-commit/action@v2.0.3
with:
extra_args: flake8 --all-files
using this action in private repositories
this action also provides an additional behaviour when used in private repositories. when configured with a github token, the action will push back fixes to the pull request branch.
using the template above, you'll make two replacements for individual actions:
first is the checkout step, which needs to use unlimited fetch depth for pushing
- uses: actions/checkout@v2
with:
fetch-depth: 0
next is passing the token to the pre-commit action
- uses: pre-commit/action@v2.0.3
with:
token: ${{ secrets.GITHUB_TOKEN }}
note that secrets.GITHUB_TOKEN
is automatically provisioned and will not
require any special configuration.
while you could technically configure this for a public repository (using a personal access token), I can't think of a way to do this safely without exposing a privileged token to pull requests -- if you have any ideas, please leave an issue!