GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Add documentation to all rules supporting a custom suppression target by ralish · Pull Request #2225 · PowerShell/PSScriptAnalyzer

Conversation

@ralish

@ralish Samuel D. Leslie (ralish) commented Oct 11, 2026

Copy link
Copy Markdown

PR Summary

A subset of PSScriptAnalyzer rules support customising a suppression so that it only applies to a specific target. This is performed through the second argument to the SuppressMessageAttribute constructor, which is otherwise an empty string to apply the rule globally within its scope.

This PR adds documentation to all rules which support customising the target of the suppression, which until now was largely undocumented.

PR Checklist

  • PR has a meaningful title
    • Use the present tense and imperative mood when describing your changes
  • Summarized changes
  • Change is not breaking
  • Make sure all .cs, .ps1 and .psm1 files have the correct copyright header
  • Make sure you've added a new test if existing tests do not effectively test the code changed and/or updated documentation
  • This PR is ready to merge and is not Work in Progress.
    • If the PR is work in progress, please add the prefix WIP: to the beginning of the title and remove the prefix when the PR is ready.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@ralish
Samuel D. Leslie (ralish) requested review from a team and Mikey Lombardi (He/Him) (michaeltlombardi) as code owners October 11, 2026 03:47
Copilot AI balanced review requested due to automatic review settings October 11, 2026 03:47
Copilot started reviewing on behalf of Samuel D. Leslie (ralish) October 11, 2026 03:47
View session
Copilot AI reviewed Oct 11, 2026
View reviewed changes

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The compatible-types guidance omits suppressible static fields and events.

1 open finding
  • Low severity Clarify suppression scope for static properties, events, and fields · New
What changed in this PR

Adds rule-specific documentation for custom SuppressMessageAttribute targets.

Changes:

  • Documents global and targeted suppression syntax.
  • Updates examples and suppression-guide links.
File Description
docs/​Rules/​UseSingularNouns.md Documents function-targeted suppression.
docs/​Rules/​UseSingleValueFromPipelineParameter.md Documents parameter-set suppression.
docs/​Rules/​UseProcessBlockForPipelineCommand.md Documents parameter-targeted suppression.
docs/​Rules/​UseDeclaredVarsMoreThanAssignments.md Documents variable-targeted suppression.
docs/​Rules/​UseCorrectCasing.md Documents casing-diagnostic targets.
docs/​Rules/​UseCompatibleTypes.md Documents type-member suppression.
docs/​Rules/​ReviewUnusedParameter.md Documents parameter-targeted suppression.
docs/​Rules/​MissingTryBlock.md Documents keyword-targeted suppression.
docs/​Rules/​InvalidMultiDotValue.md Documents value-targeted suppression.
docs/​Rules/​AvoidUsingPositionalParameters.md Documents command-targeted suppression.
docs/​Rules/​AvoidUsingPlainTextForPassword.md Documents parameter-targeted suppression.
docs/​Rules/​AvoidUsingConvertToSecureStringWithPlainText.md Documents command-targeted suppression.
docs/​Rules/​AvoidUsingComputerNameHardcoded.md Documents command-targeted suppression.
docs/​Rules/​AvoidUsingCmdletAliases.md Documents alias-targeted suppression.
docs/​Rules/​AvoidUsingBrokenHashAlgorithms.md Documents command-targeted suppression.
docs/​Rules/​AvoidUsingAllowUnencryptedAuthentication.md Documents command-targeted suppression.
docs/​Rules/​AvoidNullOrEmptyHelpMessageAttribute.md Documents parameter-targeted suppression.
docs/​Rules/​AvoidGlobalVars.md Documents scoped-variable suppression.
docs/​Rules/​AvoidGlobalFunctions.md Documents scoped-function suppression.
docs/​Rules/​AvoidDynamicallyCreatingVariableNames.md Documents dynamic-name suppression.
docs/​Rules/​AvoidDefaultValueForMandatoryParameter.md Documents parameter-targeted suppression.
docs/​Rules/​AvoidAssignmentToAutomaticVariable.md Documents variable-targeted suppression.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread docs/Rules/UseCompatibleTypes.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

@ralish
Add documentation to all rules supporting a custom suppression target
649fb23
A subset of PSScriptAnalyzer rules support customising a suppression so
that it only applies to a specific target. This is performed through the
second argument to the `SuppressMessageAttribute` constructor, which is
otherwise an empty string to apply the rule globally within its scope.

This commit adds documentation to all rules which support customising
the target of the suppression, which until now was largely undocumented.
@ralish
Samuel D. Leslie (ralish) force-pushed the update-rule-doc-suppressions branch from 9aefef6 to 649fb23 Compare October 11, 2026 03:56
@bergmeister
Christoph Bergmeister (bergmeister) requested a balanced review from Copilot October 22, 2026 21:44
Copilot started reviewing on behalf of Christoph Bergmeister (bergmeister) October 22, 2026 21:45
View session
Copilot AI reviewed Oct 22, 2026
View reviewed changes

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The documentation matches existing suppression behavior, resolves the prior feedback, and has no identified blocking issues.

No open issues 🎉

1 resolved since last review
  • Low severity Clarify suppression scope for static properties, events, and fields

Review effort: Balanced

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
bergmeister
Christoph Bergmeister (bergmeister) reviewed Oct 22, 2026
View reviewed changes

@bergmeister Christoph Bergmeister (bergmeister) left a comment

Copy link
Copy Markdown
Collaborator

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for trying to improve it but I don't like the duplication. I think there is a general suppression section here that we could maybe improve and optionally reference

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@ralish

Samuel D. Leslie (ralish) commented Oct 22, 2026

Copy link
Copy Markdown
Author

Christoph Bergmeister (@bergmeister) Perhaps the leading content under each suppression section should be removed?

As with other rules, you can suppress this rule by adding a suppression attribute to the param block of a function or script. An empty string as the second argument suppresses every violation of the rule in that scope.

[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute('<RuleName>', '')]

Removing that would condense each added suppression Markdown section to only the information unique to that rule, omitting the general "how to suppress a rule" information.

The intent of the PR is to document the rules which have support for additional granularity in their suppression, as right now that's not documented anywhere. Do you have any suggestion on how best to document the information?

Thanks!

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bergmeister

Christoph Bergmeister (bergmeister) commented Oct 22, 2026

Copy link
Copy Markdown
Collaborator

Yes, sorry forgot to provide link to docs where suppression is: https://github.com/MicrosoftDocs/PowerShell-Docs-Modules/blob/main/reference/docs-conceptual/PSScriptAnalyzer/using-scriptanalyzer.md

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ralish

Samuel D. Leslie (ralish) commented Oct 23, 2026

Copy link
Copy Markdown
Author

Christoph Bergmeister (@bergmeister) Sorry for the confusion, but are you suggesting that the unique suppression behaviour of individual rules be documented in the linked document instead of the rules themselves, or that you'd rather not have the behaviour documented at all (in which case this PR can be closed)?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@bergmeister Christoph Bergmeister (bergmeister) bergmeister left review comments
Copilot code review Copilot
Copilot review effort
Applies to this pull request for everyone.Learn more about Copilot code review.
Copilot left review comments
@michaeltlombardi Mikey Lombardi (He/Him) (michaeltlombardi) Awaiting requested review from michaeltlombardi michaeltlombardi is a code owner

At least 1 approving review is required to merge this pull request.

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

3 participants

@ralish @bergmeister
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.