mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
95b74eefdf
Manual hook added which runs a shell script. Can be run locally manually by Linux or Mac users and we have this also running on the GitHub Actions CI. Will fail if Makefiles uses spaces for indentation. Can run the manual hooks with: `pre-commit run check-makefile-indentation --all-files --hook-stage manual`
152 lines
5.1 KiB
YAML
152 lines
5.1 KiB
YAML
---
|
|
# https://pre-commit.com/
|
|
default_stages: [pre-commit, pre-push]
|
|
default_language_version:
|
|
python: python3
|
|
node: 24.11.1
|
|
minimum_pre_commit_version: "3.2.0"
|
|
exclude: "^tools/lrama/"
|
|
repos:
|
|
- repo: meta
|
|
hooks:
|
|
- id: identity
|
|
name: run identity
|
|
description: check your identity
|
|
- id: check-hooks-apply
|
|
name: run check-hooks-apply
|
|
description: check hooks apply to the repository
|
|
- repo: local
|
|
hooks:
|
|
- id: prettier
|
|
name: run prettier
|
|
description: format files with prettier
|
|
entry: prettier --write '**/*.json' '**/*.md' '**/*.yaml' '**/*.yml'
|
|
files: \.(json|md|ya?ml)$
|
|
language: node
|
|
additional_dependencies: ["prettier@3.7.4"]
|
|
stages: [manual]
|
|
- id: check-makefile-indentation
|
|
name: check Makefiles are indented with tabs
|
|
description: ensures that Makefiles are indented with tabs
|
|
entry: ./scripts/check_makefiles_for_tabs.sh
|
|
language: system
|
|
files: "(?i)^makefile$"
|
|
pass_filenames: true # <-- Crucial change: pass filenames to the script
|
|
types: [file] # Ensure only regular files are passed, not directories
|
|
stages: [manual]
|
|
- id: check-zip-file-is-not-committed
|
|
name: disallow zip files
|
|
description: Zip files are not allowed in the repository
|
|
language: fail
|
|
entry: |
|
|
Zip files are not allowed in the repository as they are hard to
|
|
track and have security implications. Please remove the zip file from the repository.
|
|
files: \.zip$
|
|
- repo: https://github.com/gitleaks/gitleaks
|
|
rev: v8.30.0
|
|
hooks:
|
|
- id: gitleaks
|
|
name: run gitleaks
|
|
description: detect hardcoded secrets with gitleaks
|
|
- repo: https://github.com/oxipng/oxipng
|
|
rev: v10.0.0
|
|
hooks:
|
|
- id: oxipng
|
|
name: run oxipng
|
|
description: use lossless compression to optimize PNG files
|
|
args: ["--fix", "-o", "4", "--strip", "safe", "--alpha"]
|
|
stages: [manual]
|
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
rev: v6.0.0
|
|
hooks:
|
|
- id: check-added-large-files
|
|
- id: check-case-conflict
|
|
- id: check-executables-have-shebangs
|
|
exclude: ^test/t/lang\.rb$
|
|
- id: check-illegal-windows-names
|
|
- id: pretty-format-json
|
|
args: [--autofix, --no-sort-keys]
|
|
- id: check-json
|
|
- id: check-merge-conflict
|
|
- id: check-shebang-scripts-are-executable
|
|
- id: check-vcs-permalinks
|
|
- id: check-yaml
|
|
- id: destroyed-symlinks
|
|
- id: detect-aws-credentials
|
|
args: [--allow-missing-credentials]
|
|
- id: detect-private-key
|
|
- id: end-of-file-fixer
|
|
- id: file-contents-sorter
|
|
args: [--unique]
|
|
files: ^\.github/linters/codespell\.txt$
|
|
- id: fix-byte-order-marker
|
|
- id: forbid-submodules
|
|
- id: mixed-line-ending
|
|
- id: trailing-whitespace
|
|
- repo: https://github.com/Lucas-C/pre-commit-hooks
|
|
rev: v1.5.5
|
|
hooks:
|
|
- id: forbid-tabs
|
|
name: run no-tabs checker
|
|
description: check the codebase for tabs
|
|
exclude: Makefile$
|
|
- id: remove-tabs
|
|
name: run tabs remover
|
|
description: find and convert tabs to spaces
|
|
args: [--whitespaces-count, "2"]
|
|
exclude: Makefile$
|
|
- repo: https://github.com/rhysd/actionlint
|
|
rev: v1.7.9
|
|
hooks:
|
|
- id: actionlint
|
|
name: run actionlint
|
|
description: lint GitHub Actions workflow files
|
|
- repo: https://github.com/codespell-project/codespell
|
|
rev: v2.4.1
|
|
hooks:
|
|
- id: codespell
|
|
name: run codespell
|
|
description: check spelling with codespell
|
|
- repo: https://github.com/igorshubovych/markdownlint-cli
|
|
rev: v0.46.0
|
|
hooks:
|
|
- id: markdownlint
|
|
name: run markdownlint
|
|
description: checks the style of Markdown files
|
|
args: [--config=.github/linters/.markdown-lint.yml]
|
|
types: [markdown]
|
|
files: \.md$
|
|
- repo: https://github.com/tcort/markdown-link-check
|
|
rev: v3.14.2
|
|
hooks:
|
|
- id: markdown-link-check
|
|
name: run markdown-link-check
|
|
description: checks hyperlinks in Markdown files
|
|
args: [--config=.github/linters/mlc_config.json, -q]
|
|
stages: [manual]
|
|
types: [markdown]
|
|
files: \.md$
|
|
- repo: https://github.com/rubocop/rubocop
|
|
rev: v1.81.7
|
|
hooks:
|
|
- id: rubocop
|
|
name: run rubocop
|
|
description: RuboCop is a Ruby code style checker (linter) and formatter based on the community-driven Ruby Style Guide
|
|
exclude: ^test/t/syntax\.rb$
|
|
args: [--config=.github/linters/.rubocop.yml]
|
|
- repo: https://github.com/shellcheck-py/shellcheck-py
|
|
rev: v0.11.0.1
|
|
hooks:
|
|
- id: shellcheck
|
|
name: run shellcheck
|
|
description: check shell scripts with a static analysis tool
|
|
- repo: https://github.com/adrienverge/yamllint
|
|
rev: v1.37.1
|
|
hooks:
|
|
- id: yamllint
|
|
name: run yamllint
|
|
description: check YAML files with yamllint
|
|
args: [--strict, -c=.github/linters/.yaml-lint.yml]
|
|
types: [yaml]
|
|
files: \.ya?ml$
|