PowerShell / PowerShell/PSScriptAnalyzer
UseProcessBlockForPipelineCommand returns a warning when pipeline behavior is explicitly disabled
Open
Nobody has claimed this yet.
Area - Rules
Issue - Bug
- Dominant language
- C#
- Stars
- 2.2k
- Forks
- 414
- Avg merge
- 13h 1m
- Merged PRs (30d)
- 2
Description
I've noticed that UseProcessBlockForPipelineCommand rule produces warning notifications when pipeline behavior (ValueFromPipeline, ValueFromPipelineByPropertyName) is explicitly disabled.
Steps to reproduce
Function Get-Number
{
[CmdletBinding()]
[OutputType([int])]
Param(
[Parameter(ValueFromPipeline=$false)]
[int]
$Number
)
$Number
}
Expected behavior
The rule should not report any findings
Actual behavior
RuleName Severity ScriptName Line Message
-------- -------- ---------- ---- -------
PSUseProcessBlockForPipelineCommand Warning Test-PSSA. 8 Command accepts pipeline input but has not defined a
ps1 process block.
Environment data
> $PSVersionTable
Name Value
---- -----
PSVersion 7.1.3
PSEdition Core
GitCommitId 7.1.3
OS Microsoft Windows 10.0.19042
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
> (Get-Module -ListAvailable PSScriptAnalyzer).Version | ForEach-Object { $_.ToString() }
1.19.1
1.20.0
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the PowerShell example and trace the UseProcessBlockForPipelineCommand rule entry point, focusing on explicitly false ValueFromPipeline and ValueFromPipelineByPropertyName values. Locate the rule's existing tests, add coverage for this case, and confirm the example produces no finding.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, powershell
- Domain
- devtools
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100