5
0
Fork 0
mirror of https://github.com/pre-commit/action.git synced 2025-11-09 11:36:55 +00:00
pre-commit-action/README.md
Tzu-ping Chung 4d8b5b8789
Use python -c to get the interpreter path hash
The current implementation has compatibility problems due to it using commands
only available on GNU Linux. Use an equivalent Python implementation for better
support on Windows and macOS.

See pypa/pip#7835.

Co-Authored-By: Xavier Fernandez <xavier.fernandez@polyconseil.fr>
2020-03-09 20:45:11 +08:00

65 lines
1.9 KiB
Markdown

[![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)
### using this action
To use this action, make a file `.github/workflows/pre-commit.yml`. Here's a
template to get started:
```yaml
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
- name: set PY
run: echo "::set-env name=PY::$(python -c 'import hashlib, sys;print(hashlib.sha256(sys.version.encode()+sys.executable.encode()).hexdigest())')"
- uses: actions/cache@v1
with:
path: ~/.cache/pre-commit
key: pre-commit|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }}
- uses: pre-commit/action@v1.0.1
```
This does a few things:
- clones the code
- installs python
- sets up the `pre-commit` cache
Hopefully in the future when `actions` matures the yaml can be simplified.
### 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.
here's an example configuration for that (use the template above except for the
`pre-commit` action):
```yaml
- uses: pre-commit/action@v1.0.1
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!