Adding powershell linter hook - best practice
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 35/100
- Issue-Typ
- Feature
- Klarheit
- Muss geklärt werden
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- powershell
- Bereich
- tooling
Rechercherichtung
Review the proposed powershell_scriptanalyzer hook configuration, especially entry, pass_filenames, and additional_dependencies, and compare it with pre-commit's documented hook behavior. Verify cross-platform invocation, option passing, and filename handling; done means a maintainable configuration addresses these cases without per-user entry overrides.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
search you tried in the issue tracker
powershell, return code, exit code
describe your issue
I'm working on a repository containing powershell scripts.
I have a pre-commit already enabled for other checks and I want to add powershell linting with https://github.com/PowerShell/PSScriptAnalyzer.
I added a hook config as
https://github.com/PowerShell/PSScriptAnalyzer/compare/master...juju4:PSScriptAnalyzer:devel-precommit
- id: powershell_scriptanalyzer
name: Powershell lint with PSScriptAnalyzer
description: This runs PSScriptAnalyzer on your powershell files
entry: pre-commit powershell_scriptanalyzer
language: script
files: ^.*\.ps1$
types: [text]
entry: pwsh -Command "Invoke-ScriptAnalyzer -Settings PSGallery -Recurse -ReportSummary -EnableExit -Path ."
require_serial: false
additional_dependencies: []
minimum_pre_commit_version: '0'
pass_filenames: false
verbose: true
In the target repo, I added following config
- repo: https://github.com/juju4/PSScriptAnalyzer
rev: 4d6a4a36c78df215bc8fa637d05929eb7a9112d9
hooks:
- id: powershell_scriptanalyzer
entry: /usr/local/bin/pwsh -Command "Invoke-ScriptAnalyzer -Settings PSGallery -Recurse -ReportSummary -EnableExit -Path ."
3 minor issues as using entry to deal with them for now.
- As I'm executing on non-windows system, I have to customize/duplicate entry value with pwsh full path. not sure if better way?
- to support powershell cmdlet include/exclude rules or severity (https://github.com/PowerShell/PSScriptAnalyzer/blob/master/docs/Cmdlets/Invoke-ScriptAnalyzer.md), I again have to customize entry. any way to define pre-commit fields to pass that inside the pwsh Command? default args apply outside.
- same problem applies if want pass_filenames=true.
/usr/local/bin/pwsh -Command "Invoke-ScriptAnalyzer -Settings PSGallery -Recurse -ReportSummary -EnableExit -Path $@"did not work in my tests.
Else happy to take more comments
Thanks a lot for your work!
pre-commit --version
2.20.0
.pre-commit-config.yaml
repos:
- repo: https://github.com/juju4/PSScriptAnalyzer
rev: 4d6a4a36c78df215bc8fa637d05929eb7a9112d9
hooks:
- id: powershell_scriptanalyzer
entry: /usr/local/bin/pwsh -Command "Invoke-ScriptAnalyzer -Settings PSGallery -Recurse -ReportSummary -EnableExit -Path ."
~/.cache/pre-commit/pre-commit.log (if present)
No response
- Vorherrschende Sprache
- Python
- Sterne
- 15.6k
- Forks
- 1k
- Ø Merge
- 9 Std. 30 Min.
- Gemergte PRs (30 T.)
- 2
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus pre-commit/pre-commit
-
Z40 = '0' * 40 hardcoding breaks `git push --delete` on SHA-256 reposEvtl. vergeben @Dmao233 hat das vor 35 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
pre-commit/pre-commit#3664 · 3 Kommentare ·
-
ValueError on Windows when config is on a different drive than the git repoEvtl. wieder frei Ein Pull Request dazu wurde ohne Merge geschlossen. Offenbug windows
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
pre-commit/pre-commit#2530 · 6 Kommentare ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 42/100
pre-commit/pre-commit#3501 · 1 Kommentar ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 58/100
pre-commit/pre-commit#3410 · 4 Kommentare · 3 Reaktionen ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
pre-commit/pre-commit#3278 · 6 Kommentare ·
Alle Issues in pre-commit/pre-commit
Ähnliche Issues
-
[Bug]: Bedrock request metadata forwarding does not work for /embeddingsEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offenbug llm translation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
-
Arkansas 2025 tax is $1.70 high above $100,000 net taxable income ($3,809 + 3.9% rule)Evtl. vergeben @PavelMakarchuk hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
PolicyEngine/policyengine-us#9828 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
jellyfin/jellyfin-mpv-shim#800 ·
Maintainer antworten meist innerhalb von 1 Tag
-
skillfs: one malformed chat-log line aborts the entire skill-usage analysis (skill_usage_from_chat_logs.py)Evtl. vergeben @zjncs hat das heute übernommen. Offencomponent:skillfs
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
agentic-os-org/ANOLISA#6116 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
P4: low query
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
jeffknupp/association#336 ·