5
0
Fork 0
mirror of https://github.com/pre-commit/action.git synced 2025-11-09 19:46:55 +00:00
pre-commit-action/README.md
2020-10-17 12:21:41 +02:00

82 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[![Build Status](https://github.com/pre-commit/action/workflows/deploy/badge.svg)](https://github.com/pre-commit/action/actions)
pre-commit/action
=================
A GitHub action to run [pre-commit](https://pre-commit.com)
## How to
### Setup
To use this action, make a file `.github/workflows/pre-commit.yml`. The following template will get you started:
```yaml
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.0
```
This does a few things:
- Clones the code
- Installs python
- Sets up the `pre-commit` cache
### 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):
```yaml
- uses: pre-commit/action@v2.0.0
with:
extra_args: flake8 --all-files
```
### 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 need to make two replacements for individual actions:
First is the checkout step, which needs to use unlimited fetch depth for
pushing:
```yaml
- uses: actions/checkout@v2
with:
fetch-depth: 0
```
Next is passing the token to the pre-commit action:
```yaml
- uses: pre-commit/action@v2.0.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
```
Note that `secrets.GITHUB_TOKEN` is [automatically provisioned](https://docs.github.com/en/free-pro-team@latest/actions/reference/authentication-in-a-workflow#about-the-github_token-secret) 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](https://github.com/pre-commit/action/issues)!