mirror of
https://github.com/pre-commit/action.git
synced 2025-11-10 03:56:55 +00:00
Added troubleshooting initial
This commit is contained in:
parent
6b8eaeddbd
commit
9ae1c1250a
1 changed files with 33 additions and 14 deletions
47
README.md
47
README.md
|
|
@ -36,11 +36,9 @@ This does a few things:
|
||||||
|
|
||||||
### With custom invocations
|
### With custom invocations
|
||||||
|
|
||||||
By default, this action runs all the hooks against all the files. `extra_args`
|
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`.
|
||||||
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
|
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):
|
||||||
the files (use the template above except for the `pre-commit` action):
|
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- uses: pre-commit/action@v2.0.0
|
- uses: pre-commit/action@v2.0.0
|
||||||
|
|
@ -50,14 +48,11 @@ the files (use the template above except for the `pre-commit` action):
|
||||||
|
|
||||||
### In private repositories
|
### In private repositories
|
||||||
|
|
||||||
This action also provides an additional behaviour when used in private
|
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.
|
||||||
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:
|
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
|
First is the checkout step, which needs to use unlimited fetch depth for pushing:
|
||||||
pushing:
|
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
@ -65,7 +60,7 @@ pushing:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
```
|
```
|
||||||
|
|
||||||
Next is passing the token to the pre-commit action:
|
Next is passing the token to the `pre-commit` action:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- uses: pre-commit/action@v2.0.0
|
- uses: pre-commit/action@v2.0.0
|
||||||
|
|
@ -76,7 +71,31 @@ Next is passing the token to the pre-commit action:
|
||||||
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
|
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.
|
require any special configuration.
|
||||||
|
|
||||||
While you could _technically_ configure this for a public repository (using a
|
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)!
|
||||||
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
|
## Troubleshooting
|
||||||
leave an [issue](https://github.com/pre-commit/action/issues)!
|
|
||||||
|
1. Changes aren't commited.
|
||||||
|
1. The _push back_ behaviour is only enabled for pull requests, not for pushes directly to branches.
|
||||||
|
Make sure that your `.github/workflows/pre-commit.yml` contains at least
|
||||||
|
|
||||||
|
```YAML
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Your pre-commit actions contain a conflict.
|
||||||
|
If `pre-commit` fails on the second invocation it can't push to the branch because GitHub actions does not fire on pushes made by GitHub actions – So instead it marks the job as failed.
|
||||||
|
_Example:_ Running `double-quote-string-fixer` and `black` will cause the action to fail since both will format strings differently (Unless you pass `-S [skip-string-normalization]` to `black`) and will prevent them from reaching an agreement.
|
||||||
|
2. Actions cannot write to file.
|
||||||
|
**Error**:
|
||||||
|
```bash
|
||||||
|
! [remote rejected] HEAD -> test (refusing to allow a GitHub App to create or update workflow `.github/workflows/pre-commit.yml` without `workflows` permission)
|
||||||
|
```
|
||||||
|
This happens when the action is trying to change a workflow file and is prohibited by [GitHub](https://github.community/t/refusing-to-allow-an-integration-to-create-or-update/16326/2).
|
||||||
|
**Fix:**
|
||||||
|
Exclude the workflow file from the action through top level [`exclude`](https://pre-commit.com/#top_level-exclude) or hook level [`exclude`](https://pre-commit.com/#config-exclude).
|
||||||
|
**Example regex for top level**
|
||||||
|
```YAML
|
||||||
|
exclude: '.github/workflows/.*?\.yml'
|
||||||
|
``
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue