thoughtworks / talisman

Using a pre-commit hook, Talisman validates the outgoing changeset for things that look suspicious — such as tokens, passwords, and private keys.
https://thoughtworks.github.io/talisman/
MIT License
1.9k stars 243 forks source link

Talisman broken with pre-commit because the executable is not included #432

Open mpicard opened 1 year ago

mpicard commented 1 year ago

Describe the bug

When I run pre-commit run --all-files I get an error because the Talisman executable is not found. This is unconventional for a pre-commit hook. It says in the docs:

pre-commit currently supports hooks written in many languages. As long as your git repo is an installable package (gem, npm, pypi, etc.) or exposes an executable, it can be used with pre-commit.

source

Talisman is not installable with one of the supported package managers and it doesn't expose the binary because it assumes you already have it installed, which is not the way pre-commit hooks are supposed to work.

To Reproduce Steps to reproduce the behavior:

  1. (on a new machine) install pre-commit
  2. add a .pre-commit-config.yaml with:
    repos:
    - repo: https://github.com/thoughtworks/talisman
     rev: v1.31.0
     hooks:
      - id: talisman-commit
  3. run pre-commit run --all-files (or commit something to trigger pre-commit)
  4. See error

Expected behavior

pre-commit works as intended and executes talisman and exit 0 (if no secrets are found) as expected behavior of pre-comimt

Screenshots

Screenshot 2023-08-02 at 17 30 58

Desktop (please complete the following information):

ColdFire87 commented 1 year ago

got the same issue with v1.31.0 in Win 11 + WSL2

Found a workaround from the pre-commit author here -> https://stackoverflow.com/a/68803356/5285606

repos:
  - repo: https://github.com/thoughtworks/talisman
    rev: v1.31.0
    hooks:
      - id: talisman-commit
        entry: cmd --githook pre-commit
      - id: talisman-push
        entry: cmd --githook pre-commit