This is a plugin for pre-commit that will run various ruby tools for linting and testing.
Hooks require that
bundle be already available on your system.
To lint Ruby changes in your repo, use the
rubocop hook. The root of your repo must have a
Gemfile that includes the desired version of rubocop. It will be installed via Bundler prior to linting. Rubocop will only be run against changed files for each commit.
To lint Chef changes in your repo, use the
cookstyle hook. The root of your repo must have a
Gemfile that includes the desired version of foodcritic or cookstyle. It will be installed via Bundler prior to linting. Foodcritic will only be run against cookbooks with changes to Chef code; this does not include the libraries directory of a cookbook. Cookstyle will be run against cookbooks and it's at the tools discretion of what actually gets checked. You may specify
--fix as an argument for cookstyle for it to auto-fix any issues that it can.
To check Chef cookbook version bumps, use the
chef-cookbook-version hook. Each changed cookbook will have its
metadata.json checked to determine if its version has been increased. If not, it will automatically be fixed with the patch-level incremented.
To unit test Ruby changes in your repo, use the
rspec hook. Each path in your repo with a
spec directory should have a
Gemfile that includes your desired version of rspec (or a derivative library). It will be installed via Bundler prior to testing. Rspec will only be run against the closest directory in a changed file's path with a spec dir.
- repo: https://github.com/mattlqx/pre-commit-ruby rev: v1.3.5 hooks: - id: rubocop - id: foodcritic - id: cookstyle - id: rspec - id: chef-cookbook-version