update docs to use latest checkout action

I can only get this to work when setting `fetch-depth: 0`. Otherwise, I see this error

```
push fixes
  /usr/bin/git config user.name pre-commit
  /usr/bin/git config user.email pre-commit@example.com
  /usr/bin/git checkout HEAD -b pre-commit-gha
  M	README.md
  Switched to a new branch 'pre-commit-gha'
  /usr/bin/git commit -am pre-commit fixes
  [pre-commit-gha 800dbc6] pre-commit fixes
   1 file changed, 1 insertion(+), 1 deletion(-)
  /usr/bin/git remote set-url origin ***github.com/***.git
  /usr/bin/git push origin HEAD
  To https://github.com/***.git
   ! [rejected]        HEAD -> pre-commit-gha (fetch first)
  error: failed to push some refs to 'https://github.com/***.git'
  hint: Updates were rejected because the remote contains work that you do
  hint: not have locally. This is usually caused by another repository pushing
  hint: to the same ref. You may want to first integrate the remote changes
  hint: (e.g., 'git pull ...') before pushing again.
```
1 file changed
tree: 223d925839cd790e904063ed5a0d280c1be1d284
  1. .github/
  2. .gitignore
  3. .pre-commit-config.yaml
  4. action.yml
  5. index.js
  6. LICENSE
  7. Makefile
  8. package-lock.json
  9. package.json
  10. README.md
  11. webpack.config.js
README.md

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@v1
    - uses: actions/setup-python@v1
    - 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
      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.0
      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!