fix: remediate scan-4 findings F058, F062, F063, F071, F072, F073, F074, F075

F058 (critical): Replace while(true) infinite-loop task polling with
TaskService.WaitForTask in 5 container snapshot and storage cmdlets.

F073+F047 (high): Migrate net9.0 → net10.0 across both source .csproj
files, build.yml, publish.yml, and test helper.

F071 (medium): Add Uri.EscapeDataString() to all inline URL path
segments in ~16 cmdlets that bypass service classes (D003).

F062+F063 (medium): Add ConfirmImpact.High to Restart-PveContainer
and Suspend-PveContainer (D006).

F075 (medium): Generate markdown help docs for 89 cmdlets that were
missing documentation (170 total, up from 81).

F072 (low): Remove unused System.Text.Json dependency from Core.csproj.
F074 (low): Raise publish smoke-test threshold from 60 to 150.
F065 (low): Add .github/ISSUE_TEMPLATE/config.yml.
F066 (low): Add CODEOWNERS.

Also fix _TestHelper.ps1 net9.0 → net10.0 framework reference.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Clint Branham
2026-03-23 09:54:28 -05:00
parent 0fa92d689f
commit 94424367bf
114 changed files with 14072 additions and 143 deletions
+8 -8
View File
@@ -15,7 +15,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v5
with:
dotnet-version: '9.0.x'
dotnet-version: '10.0.x'
- name: Restore dependencies
run: |
dotnet restore src/PSProxmoxVE/PSProxmoxVE.csproj
@@ -33,7 +33,7 @@ jobs:
name: coverage-net48
path: ./coverage
build-net9:
build-net10:
strategy:
matrix:
os: [windows-latest, ubuntu-latest]
@@ -44,16 +44,16 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v5
with:
dotnet-version: '9.0.x'
dotnet-version: '10.0.x'
- name: Restore dependencies
run: dotnet restore
- name: Build net9.0
run: dotnet build --configuration Release --framework net9.0 --no-restore
- name: Test net9.0
run: dotnet test tests/PSProxmoxVE.Core.Tests/PSProxmoxVE.Core.Tests.csproj --configuration Release --framework net9.0 --no-build --verbosity normal --collect:"XPlat Code Coverage" --results-directory ./coverage
- name: Build net10.0
run: dotnet build --configuration Release --framework net10.0 --no-restore
- name: Test net10.0
run: dotnet test tests/PSProxmoxVE.Core.Tests/PSProxmoxVE.Core.Tests.csproj --configuration Release --framework net10.0 --no-build --verbosity normal --collect:"XPlat Code Coverage" --results-directory ./coverage
- name: Upload coverage
if: always()
uses: actions/upload-artifact@v7
with:
name: coverage-net9-${{ matrix.os }}
name: coverage-net10-${{ matrix.os }}
path: ./coverage
+3 -3
View File
@@ -19,7 +19,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v5
with:
dotnet-version: '9.0.x'
dotnet-version: '10.0.x'
- name: Extract version from tag
id: version
@@ -55,8 +55,8 @@ jobs:
Import-Module PSProxmoxVE -Force -ErrorAction Stop
$commands = Get-Command -Module PSProxmoxVE
Write-Host "Module loaded with $($commands.Count) commands"
if ($commands.Count -lt 60) {
throw "Expected at least 60 commands, got $($commands.Count)"
if ($commands.Count -lt 150) {
throw "Expected at least 150 commands, got $($commands.Count)"
}
- name: Publish to PSGallery