Fork of pre-commitaction

Clone this repo:
  1. c8f1142 Merge pull request #71 from pre-commit/pre-commit-ci-update-config by Anthony Sottile · 3 years, 2 months ago master
  2. 0b3be06 [] pre-commit autoupdate by pre-commit-ci[bot] · 3 years, 2 months ago
  3. c41f48a Merge pull request #69 from pre-commit/dependabot/npm_and_yarn/ini-1.3.8 by Anthony Sottile · 3 years, 3 months ago
  4. 1e5cd5e Bump ini from 1.3.5 to 1.3.8 by dependabot[bot] · 3 years, 3 months ago
  5. fff66c2 Merge pull request #67 from pre-commit/pre-commit-ci-update-config by Anthony Sottile · 3 years, 3 months ago status Build Status


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

    branches: [master]

    runs-on: ubuntu-latest
    - uses: actions/checkout@v2
    - uses: actions/setup-python@v2
    - uses: pre-commit/action@v2.0.0

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.0
        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
        fetch-depth: 0

next is passing the token to the pre-commit action

    - uses: pre-commit/action@v2.0.0
        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!