This project provides pre-commit hooks to lint and format PowerShell code, using the PSScriptAnalyzer static code checker.
To activate the hooks, add the following lines to the repos list in the project's .pre-commit-config.yaml file:
--- repos: - repo: https://github.com/ophiosdev/pre-commit-psscriptanalyzer.git rev: v2.0.0 hooks: # Check PowerShell code - id: psscriptanalyzer-check # Format PowerShell code - id: psscriptanalyzer-formatThese hooks require PowerShell to run.
Alternatively use this to run the hooks with Docker (so no dependency on PowerShell is needed):
--- repos: - repo: https://github.com/ophiosdev/pre-commit-psscriptanalyzer.git rev: v2.0.0 hooks: # Check PowerShell code - id: psscriptanalyzer-check-docker # Format PowerShell code - id: psscriptanalyzer-format-dockerThe psscriptanalyzer-check hook performs checks on PowerShell code, based on selected best practice rules. It supports the following options from the PSScriptAnalyzer function Invoke-ScriptAnalyzer:
-CustomRulePath-ExcludeRule-Fix-IncludeDefaultRules-IncludeRule-IncludeSuppressed-RecurseCustomRulePath-SaveDscDependency-Settings-Severity
The psscriptanalyzer-check-docker hook supports the same options.
To pass multiple values like to the -ExcludeRule parameter, create a single string where the values are separated by a , (comma) without any whitespaces
--- repos: - repo: https://github.com/ophiosdev/pre-commit-psscriptanalyzer.git rev: v2.0.0 hooks: # Check PowerShell code - id: psscriptanalyzer-check args: - '-ExcludeRule' - 'PSAvoidUsingConvertToSecureStringWithPlainText,PSAvoidUsingWriteHost'The psscriptanalyzer-format formats PowerShell code to a canonical format. It supports the following options from the PSScriptAnalyzer function Invoke-Formatter :
The psscriptanalyzer-format-docker hook supports the same options.
© 2023 Mohamed El Morabity © 2024 Ophios GmbH
Licensed under the GNU GPL, version 3.0 or later.