PowerShell / PowerShell/PSScriptAnalyzer
PSShouldProcess rule ignores ShouldContinue
Đang mở
Chưa có ai nhận issue này.
Area - Rules
Issue - Bug
- Ngôn ngữ chính
- C#
- Star
- 2.2k
- Fork
- 414
- Merge trung bình
- 13 giờ 1 phút
- Pull request đã merge (30 ngày)
- 2
Mô tả
Steps to reproduce
# File: c:\temp\Invoke-MVP.ps1
function Invoke-MVP {
[CmdletBinding(SupportsShouldProcess = $true)] # This line shows an exception
[OutputType('System.String')]
Param (
[Parameter()]
[switch]$Force # just to hide PSAvoidShouldContinueWithoutForce for this MVP
)
{
if ($PSCmdlet.ShouldContinue('Should I continue','Should I continue')) {
'I continued'
}
}
}
Invoke-ScriptAnalyzer -Path 'C:\temp\Invoke-MVP.ps1'
Expected behavior
No error; using ShouldContinue should be equivalent to using ShouldProcess (for which we don't see this issue).
Actual behavior
RuleName Severity ScriptName Line Message
-------- -------- -------------- ---- -------
PSShouldProcess Warning Invoke-MVP.ps1 2 'Invoke-POC' has the ShouldProcess attribute but does not
call ShouldProcess/ShouldContinue.
Environment data
> $PSVersionTable
Name Value
---- -----
PSVersion 5.1.14409.1018
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.14409.1018
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
> (Get-Module -ListAvailable PSScriptAnalyzer).Version | ForEach-Object { $_.ToString() }
1.18.1
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu với quy tắc PSShouldProcess và tái hiện cảnh báo bằng C:\temp\Invoke-MVP.ps1 thông qua Invoke-ScriptAnalyzer. Theo dõi cách quy tắc phát hiện các lệnh gọi ShouldProcess và ShouldContinue; hoàn thành có nghĩa là hàm được cung cấp không còn tạo ra cảnh báo PSShouldProcess khi gọi ShouldContinue.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- csharp, powershell
- Lĩnh vực
- tooling
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 45/100