lefthook

Default: null

New feature

Added in lefthook 1.10.5

Provide a full path to lefthook executable or a command to run lefthook. Bourne shell (sh) syntax is supported.

This option does not merge from remotes or extends for security reasons. It does get merged from lefthook-local.yml if specified.

There are three reasons you may want to specify lefthook:

  1. You want to force using specific lefthook version from your dependencies (e.g. npm package)
  2. You use PnP loader for your JS/TS project, and your package.json with lefthook dependency locates in a subfolder
  3. You want to make sure you use concrete lefthook executable path and want to defined it in lefthook-local.yml

Specify lefthook executable

# lefthook.yml

lefthook: /usr/bin/lefthook

pre-commit:
  jobs:
    - run: yarn lint

Specify a command to run lefthook

# lefthook.yml

lefthook: |
  cd project-with-lefthook
  pnpm lefthook

pre-commit:
  jobs:
    - run: yarn lint
      root: project-with-lefthook

Force using a version from Rubygems

# lefthook.yml

lefthook: bundle exec lefthook

pre-commit:
  jobs:
    - run: bundle exec rubocop -- {staged_files}

Enable debug logs

# lefthook-local.yml

lefthook: LEFTHOOK_VERBOSE=1 lefthook