5
0
Fork 0
mirror of https://github.com/pre-commit/action.git synced 2025-11-07 10:46:56 +00:00
a GitHub action to run pre-commit
Find a file
Anthony Sottile 686d7163d0
Merge pull request #140 from pre-commit/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2022-01-31 16:05:41 -05:00
.github/workflows Use org-default .github/FUNDING.yml 2021-11-23 11:24:00 -05:00
.gitignore Initial commit 2019-11-24 19:27:32 -08:00
.pre-commit-config.yaml [pre-commit.ci] pre-commit autoupdate 2022-01-31 21:02:16 +00:00
action.yml Support extra_args keyword in pre-commit GitHub action 2020-05-15 08:14:38 -07:00
index.js Prevent checking out an already existing branch. 2021-04-20 19:01:11 -04:00
LICENSE add LICENSE resolves #25 2020-05-16 09:34:36 -07:00
Makefile include the license in the release output 2020-05-22 13:06:23 -07:00
package-lock.json Bump ssri from 6.0.1 to 6.0.2 2021-04-20 23:40:31 +00:00
package.json embedding cache steps by using @actions/cache 2020-06-13 12:43:57 -07:00
README.md Update README with the latest version number 2021-06-17 01:54:31 +04:00
webpack.config.js set mode: production to silence webpack warning 2020-05-22 14:29:06 -07:00

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.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/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!