Skip to content

cloudposse-pre-commit

Actions
run pre-commit and optionally commit back to the pull request
v4.0.0
Latest
Verified creator
Star (11)

Verified

GitHub has manually verified the creator of the action as an official partner organization. For more info see About badges in GitHub Marketplace.

cloudposse/github-action-pre-commit

A GitHub action to run pre-commit

NOTE: This is a fork of pre-commit/action to add additional features.

Permissions required: repo and workflow

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@v4
    - uses: actions/setup-python@v5
    - uses: cloudposse/[email protected]

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: cloudposse/[email protected]
      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: cloudposse/[email protected]
      with:
        token: ${{ secrets.GITHUB_TOKEN }}
        git_user_name: pre-commit
        git_user_email: [email protected]
        git_commit_message: "pre-commit fixes"

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!

cloudposse-pre-commit is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.

About

run pre-commit and optionally commit back to the pull request
v4.0.0
Latest

Verified

GitHub has manually verified the creator of the action as an official partner organization. For more info see About badges in GitHub Marketplace.

cloudposse-pre-commit is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.