Need help with action?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

pre-commit
141 Stars 25 Forks MIT License 74 Commits 2 Opened issues

Description

a GitHub action to run `pre-commit`

Services available

!
?

Need anything else?

Contributors list

pre-commit.ci status Build Status

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/[email protected] - uses: actions/[email protected] - uses: pre-commit/[email protected]

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/[email protected]
      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/[email protected]
      with:
        fetch-depth: 0

next is passing the token to the pre-commit action

    - uses: pre-commit/[email protected]
      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!

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.