PSScriptAnalyzer icon indicating copy to clipboard operation
PSScriptAnalyzer copied to clipboard

Rule for unused rule suppressions

Open iRon7 opened this issue 3 years ago • 1 comments

Currently there are quiet some reason to suppress a certain rule as e.g.:

  • Not be able to (easily) work around an issue
  • False positives

There are also a few reasons a rule suppression might get obsolete, e.g.:

  • The script issue gets resolved e.g. all the Write-Host cmdlet are been replaced which a different cmdlet
  • The script issue doesn't anymore apply e.g. a PSReviewUnusedParameter parameter get completely depreciated or a variable gets (also) used in scope
  • PSScriptAnalyzer update e.g. a false positive might get fixed in a newer version of PSScriptAnalyzer

In all the situations I would like to be warned that there is a Diagnostics.CodeAnalysis.SuppressMessageAttribute that is no longer required.

This will avoid a scenario were:

  • Someone resolves an analyzer issue (e.g. PSAvoidUsingWriteHost ) in a particular script but forgets to remove the SuppressMessageAttribute from the annotations
  • Someone else updates the same script but unseen reintroduces the analyzer issue (e.g. Write-Host ) again.

iRon7 avatar Feb 21 '23 17:02 iRon7

Good idea, I wonder if this can be part of the command log in general because in theory it should be possible to annotate whether a suppression entry caused a suppression and if not call that out. A rule would need to make assumptions or reverse engineer the suppression logic, therefore I'd rather do this as part of the suppression logic itself

bergmeister avatar Feb 22 '23 10:02 bergmeister