pre-commit.py 769 B

123456789101112131415161718192021222324252627
  1. #!/usr/bin/env python3
  2. """Helper script to be used as a pre-commit hook."""
  3. import os
  4. import sys
  5. import subprocess
  6. def gitleaksEnabled():
  7. """Determine if the pre-commit hook for gitleaks is enabled."""
  8. out = subprocess.getoutput("git config --bool hooks.gitleaks")
  9. if out == "false":
  10. return False
  11. return True
  12. if gitleaksEnabled():
  13. exitCode = os.WEXITSTATUS(os.system('gitleaks protect -v --staged'))
  14. if exitCode == 1:
  15. print('''Warning: gitleaks has detected sensitive information in your changes.
  16. To disable the gitleaks precommit hook run the following command:
  17. git config hooks.gitleaks false
  18. ''')
  19. sys.exit(1)
  20. else:
  21. print('gitleaks precommit disabled\
  22. (enable with `git config hooks.gitleaks true`)')