GeezerVison is showing github.com — Tighten DSC resource detection in AvoidAlias by Copilot · Pull Request #2280 · PowerShell/PSScriptAnalyzer
Conversation
Copilot
AI
commented
Oct 28, 2026
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
DSC resource detection could suppress diagnostics for executable commands and scan sibling statements for ordinary commands. It also misclassified assignments, scriptblock expressions, and pipeline elements as resource declarations.
- Constrain resource detection: Defer body lookup until a configuration ancestor is found. Require a standalone command pipeline and a matching resource header for following-line bodies.
- Preserve executable diagnostics: Treat assignment and expression contexts as boundaries; only accept command-expression blocks when they match a resource body.
- Add regressions: Cover assigned commands and scriptblocks, parenthesized expressions, following-line property blocks, and piped commands.
Configuration Example {
Package App {
Name = 'Example'
}
$result = Verb Argument {}
Verb Argument {} | Out-Null
}
The resource declaration remains ignored; the executable commands retain their Get-Verb diagnostics.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Copilot
AI
changed the title
[WIP] Fix code based on review comments
Tighten DSC resource detection in AvoidAlias
Oct 28, 2026
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
No active review issues were identified in the AvoidAlias DSC resource-detection changes.
No open issues 🎉
What changed in this PR
This PR tightens DSC resource detection in the AvoidAlias rule so executable commands retain diagnostics while resource declarations remain excluded.
Changes:
- Require a configuration ancestor and a standalone command pipeline before recognizing resource declarations.
- Treat assignment and parenthesized-expression contexts as boundaries, and validate following-line resource bodies against their headers.
- Add regression coverage for assignments, scriptblocks, expressions, following-line property blocks, and pipelines.
| File |
Description |
| Tests/Rules/AvoidUsingAlias.tests.ps1 |
Adds regression tests ensuring executable commands retain alias and implicit-command diagnostics. |
| Rules/AvoidAlias.cs |
Restricts DSC resource detection and validates following-line body associations. |
Review effort: Balanced
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
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.
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.
|