Skip to content

Commit

Permalink
Install pre-commit-hooks as dependency (#28)
Browse files Browse the repository at this point in the history
* pre-commit-hooks as dependency
* remove pre-commit-hooks as submodule
* rename package
* Update .pre-commit-hooks.yaml

Co-authored-by: Jad El Kik <64258942+ls-jad-elkik@users.noreply.github.com>
  • Loading branch information
ls-alexander-muehlbauer and ls-jad-elkik authored Mar 4, 2022
1 parent 0bc1eb2 commit 49b5b5b
Show file tree
Hide file tree
Showing 15 changed files with 334 additions and 147 deletions.
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
[submodule "pre-commit-hooks"]
path = submodule_pre_commit_hooks
url = git@github.com:pre-commit/pre-commit-hooks.git
[submodule "submodule_syntaqx_git_hooks"]
path = submodule_syntaqx_git_hooks
url = git@github.com:syntaqx/git-hooks.git
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
repos:
- repo: .
rev: v0.7.5
rev: v0.7.7
hooks:
- id: end-of-file-fixer
- id: trailing-whitespace
Expand Down
252 changes: 202 additions & 50 deletions .pre-commit-hooks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,61 +5,46 @@
language: python
entry: black
files: \.(py)$

- id: circleci-config-pack
name: CircleCI config pack
description: Pack the config, creating the config.yml file
entry: pre_commit_hooks/circleci-config-pack.sh
entry: ls_pre_commit_hooks/circleci-config-pack.sh
language: script
files: ^.circleci/config/
pass_filenames: false

- id: circleci-config-validate
name: CircleCI config validation
description: Test if the CircleCI config is well formed.
entry: pre_commit_hooks/circleci-config-validate.sh
entry: ls_pre_commit_hooks/circleci-config-validate.sh
language: script
files: ^.circleci/config.yml$

- id: detect-secrets
name: Detect secrets
description: Detects high entropy strings that are likely to be passwords.
language: python
entry: detect-secrets-hook
args: ["--base64-limit", "4.5", "--hex-limit", "3"]
files: .*

- id: end-of-file-fixer
name: end of file fixer
description: end of file fixer
entry: end-of-file-fixer
language: python
types: [text]
stages: [commit, push, manual]

- id: flake8
name: flake8
description: flake8 - Python style guide enforcement
language: python
entry: flake8
files: \.py$

- id: google-java-code-format
name: Format Java with Google formatter
entry: pre_commit_hooks/google-java-code-format.sh
entry: ls_pre_commit_hooks/google-java-code-format.sh
language: script
types: [text]
files: \.(java)$
stages: [commit, push, manual]
require_serial: true

- id: isort
name: isort
description: isort - Sorting Python imports
language: python
entry: isort
files: \.(py)$

- id: mypy
name: mypy
description: Executes static type checking for python
Expand All @@ -69,37 +54,20 @@
args: ["--ignore-missing-imports", "--scripts-are-modules"]
require_serial: true
additional_dependencies: []

- id: poetry-pytest
name: Pytest within poetry shell
description: Use poetry to run pytest
entry: pre_commit_hooks/poetry-pytest.sh
entry: ls_pre_commit_hooks/poetry-pytest.sh
language: script
pass_filenames: false
always_run: true

- id: pretty-format-json
name: Pretty format JSON
description: This hook sets a standard for formatting JSON files.
entry: pretty-format-json
language: python
types: [json]

- id: pylint
name: pylint
description: pylint - It's not just a linter that annoys you!
language: python
entry: pylint
files: \.(py)$
require_serial: true

- id: requirements-txt-fixer
name: Fix requirements.txt
description: Sorts entries in requirements.txt
entry: requirements-txt-fixer
language: python
files: requirements.*\.txt$

- id: shellcheck
name: Test shell scripts with shellcheck
description: Shell scripts conform to shellcheck
Expand All @@ -108,43 +76,227 @@
types: [shell]
exclude_types: [csh, perl, python, ruby, tcsh, zsh]
args: [-e, SC1091]

- id: shfmt
name: Check shell style with shfmt
language: script
entry: submodule_syntaqx_git_hooks/hooks/shfmt.sh
types: [shell]
exclude_types: [csh, perl, python, ruby, tcsh, zsh]
args: ["-l", "-i", "2", "-ci"]

- id: tidy-xml-format
name: Format XML with Tidy
entry: pre_commit_hooks/tidy-xml-format.sh
entry: ls_pre_commit_hooks/tidy-xml-format.sh
language: script
types: [text]
files: \.(xml)$
stages: [commit, push, manual]

- id: trailing-whitespace
name: Trim Trailing Whitespace
description: This hook trims trailing whitespace.
entry: trailing-whitespace-fixer
language: python
types: [text]
stages: [commit, push, manual]

- id: yamllint
name: yamllint
description: This hook runs yamllint.
entry: yamllint
language: python
types: [file, yaml]

- id: checkstyle
name: checkstyle
description: |
Runs checkstyle style check with mvn.
mvn executable is expected to be installed.
entry: pre_commit_hooks/maven-checkstyle.sh
entry: ls_pre_commit_hooks/maven-checkstyle.sh
language: script
pass_filenames: false
# pre-commit-hooks is installed as a dependency (in pyproject.toml), adding hooks from:
# https://github.com/pre-commit/pre-commit-hooks/blob/v4.1.0/.pre-commit-hooks.yaml
- id: check-added-large-files
name: check for added large files
description: prevents giant files from being committed.
entry: check-added-large-files
language: python
- id: check-ast
name: check python ast
description: simply checks whether the files parse as valid python.
entry: check-ast
language: python
types: [python]
- id: check-byte-order-marker
name: 'check BOM - deprecated: use fix-byte-order-marker'
description: forbids files which have a utf-8 byte-order marker.
entry: check-byte-order-marker
language: python
types: [text]
- id: check-builtin-literals
name: check builtin type constructor use
description: requires literal syntax when initializing empty or zero python builtin types.
entry: check-builtin-literals
language: python
types: [python]
- id: check-case-conflict
name: check for case conflicts
description: checks for files that would conflict in case-insensitive filesystems.
entry: check-case-conflict
language: python
- id: check-docstring-first
name: check docstring is first
description: checks a common error of defining a docstring after code.
entry: check-docstring-first
language: python
types: [python]
- id: check-executables-have-shebangs
name: check that executables have shebangs
description: ensures that (non-binary) executables have a shebang.
entry: check-executables-have-shebangs
language: python
types: [text, executable]
stages: [commit, push, manual]
- id: check-json
name: check json
description: checks json files for parseable syntax.
entry: check-json
language: python
types: [json]
- id: check-shebang-scripts-are-executable
name: check that scripts with shebangs are executable
description: ensures that (non-binary) files with a shebang are executable.
entry: check-shebang-scripts-are-executable
language: python
types: [text]
stages: [commit, push, manual]
- id: pretty-format-json
name: pretty format json
description: sets a standard for formatting json files.
entry: pretty-format-json
language: python
types: [json]
- id: check-merge-conflict
name: check for merge conflicts
description: checks for files that contain merge conflict strings.
entry: check-merge-conflict
language: python
types: [text]
- id: check-symlinks
name: check for broken symlinks
description: checks for symlinks which do not point to anything.
entry: check-symlinks
language: python
types: [symlink]
- id: check-toml
name: check toml
description: checks toml files for parseable syntax.
entry: check-toml
language: python
types: [toml]
- id: check-vcs-permalinks
name: check vcs permalinks
description: ensures that links to vcs websites are permalinks.
entry: check-vcs-permalinks
language: python
types: [text]
- id: check-xml
name: check xml
description: checks xml files for parseable syntax.
entry: check-xml
language: python
types: [xml]
- id: check-yaml
name: check yaml
description: checks yaml files for parseable syntax.
entry: check-yaml
language: python
types: [yaml]
- id: debug-statements
name: debug statements (python)
description: checks for debugger imports and py37+ `breakpoint()` calls in python source.
entry: debug-statement-hook
language: python
types: [python]
- id: destroyed-symlinks
name: detect destroyed symlinks
description: detects symlinks which are changed to regular files with a content of a path which that symlink was pointing to.
entry: destroyed-symlinks
language: python
types: [file]
- id: detect-aws-credentials
name: detect aws credentials
description: detects *your* aws credentials from the aws cli credentials file.
entry: detect-aws-credentials
language: python
types: [text]
- id: detect-private-key
name: detect private key
description: detects the presence of private keys.
entry: detect-private-key
language: python
types: [text]
- id: double-quote-string-fixer
name: fix double quoted strings
description: replaces double quoted strings with single quoted strings.
entry: double-quote-string-fixer
language: python
types: [python]
- id: end-of-file-fixer
name: fix end of files
description: ensures that a file is either empty, or ends with one newline.
entry: end-of-file-fixer
language: python
types: [text]
stages: [commit, push, manual]
- id: file-contents-sorter
name: file contents sorter
description: sorts the lines in specified files (defaults to alphabetical). you must provide list of target files as input in your .pre-commit-config.yaml file.
entry: file-contents-sorter
language: python
files: '^$'
- id: fix-byte-order-marker
name: fix utf-8 byte order marker
description: removes utf-8 byte order marker.
entry: fix-byte-order-marker
language: python
types: [text]
- id: fix-encoding-pragma
name: fix python encoding pragma
description: 'adds # -*- coding: utf-8 -*- to the top of python files.'
language: python
entry: fix-encoding-pragma
types: [python]
- id: forbid-new-submodules
name: forbid new submodules
description: prevents addition of new git submodules.
language: python
entry: forbid-new-submodules
types: [directory]
- id: mixed-line-ending
name: mixed line ending
description: replaces or checks mixed line ending.
entry: mixed-line-ending
language: python
types: [text]
- id: name-tests-test
name: python tests naming
description: this verifies that test files are named correctly.
entry: name-tests-test
language: python
files: (^|/)tests/.+\.py$
- id: no-commit-to-branch
name: "don't commit to branch"
entry: no-commit-to-branch
language: python
pass_filenames: false
always_run: true
- id: requirements-txt-fixer
name: fix requirements.txt
description: sorts entries in requirements.txt.
entry: requirements-txt-fixer
language: python
files: requirements.*\.txt$
- id: sort-simple-yaml
name: sort simple yaml files
description: sorts simple yaml files which consist only of top-level keys, preserving comments and blocks.
language: python
entry: sort-simple-yaml
files: '^$'
- id: trailing-whitespace
name: trim trailing whitespace
description: trims trailing whitespace.
entry: trailing-whitespace-fixer
language: python
types: [text]
stages: [commit, push, manual]
Loading

0 comments on commit 49b5b5b

Please sign in to comment.