Skip to content
README.md 1.02 KiB
Newer Older
# `pre-commit`

> A module to integrate between Bazel and the `pre-commit` framework

## Getting Started

Add the following to `MODULE.bazel`:

```py
bazel_dep("pre-commit", version = "<version>")
```

Create a `hooks` directory to create the `pre-commit` configuration:

```py
load("@pre-commit//pre-commit/defs.bzl", "pre_commit")
load("@pre-commit//pre-commit/hook/defs.bzl", "pre_commit_hook")
load("@pre-commit//pre-commit/config/defs.bzl", "pre_commit_config")

pre_commit_hook(
    name = "commitlint",
    stages = ["commit-msg"],
    src = "@commitlint",
)

pre_commit_hook(
    name = "prettier",
    stages = ["pre-commit"],
    src = "@prettier",
)

pre_commit_config(
    name = "config",
    srcs = [
        ":commitlint",
        ":pre-commit",
    ],
)

pre_commit(
    name = "hooks",
    src = ":config",
)
```

## Usage

Install the hooks with `bazelisk run -- hooks install`.

## Hermeticity

The project uses `rules_python` which is hermetic when `--@rules_python//python/config_settings:bootstrap_impl` is set to `script`.