wcom-pr-validation
2026.5.19.3
See the version list below for details.
dotnet tool install --global wcom-pr-validation --version 2026.5.19.3
dotnet new tool-manifest
dotnet tool install --local wcom-pr-validation --version 2026.5.19.3
#tool dotnet:?package=wcom-pr-validation&version=2026.5.19.3
nuke :add-package wcom-pr-validation --version 2026.5.19.3
.NET pull request validation (global tool)
A .NET global tool that clones a pull request branch, builds and tests .NET solutions, runs optional quality checks (formatting, complexity, documentation, NuGet hygiene), and posts results as comments in Azure DevOps pull requests.
Features
- Clone PR source and validate on an isolated branch
- Restore, build (including Cake when present), and test with summarized output
- Optional checks:
dotnet format, outdated packages, solution migration, Roslyn-based complexity and XML documentation analysis - Repository-specific JSON config (
.wcom-pr-validation.json) with per-step opt-outs, thresholds, skip patterns, pipeline timing, and PR comment limits - Designed for CI/CD (Azure Pipelines) using standard environment variables
Requirements
- .NET SDK compatible with the tool’s target framework (see the package details)
- Git
- Network access to Azure DevOps for clone and PR comment APIs
Installation
dotnet tool install --global wcom-pr-validation
Use --add-source or a NuGet.config if you install from a private feed.
Quick start (command line)
Replace the URI, pull request id, branch, and token with your own. Example organization and project names are illustrative only.
wcom-pr-validation \
--pr "12345" \
--repo "https://dev.azure.com/contoso/Fabrikam/_git/sample-app" \
--pat "<personal-access-token>" \
--branch "refs/heads/feature/your-branch"
In Azure Pipelines, the same values are typically supplied through predefined pipeline variables; refer to your pipeline template or product documentation for the exact names.
Configuration (.wcom-pr-validation.json)
Place /.wcom-pr-validation.json in the root of the repository being validated (the clone). Property names are case-insensitive; // comments are allowed. If the file is missing, safe defaults apply.
| Section | Purpose |
|---|---|
repository |
Toggle orphan prvalidation/* cleanup, blocking Directory.Packages.props under the clone, and NuGet source configuration (cleanupOrphanValidationBranches, createBlockingDirectoryPackagesProps, configureNuGetSources; default true). |
pipeline |
Cleanup tuning after validation: gitHandleReleaseDelayMilliseconds, cleanupDirectoryDeleteMaxRetries, cleanupDirectoryDeleteRetryDelayMilliseconds. |
comments |
Master PR comment switch enabled (default true), plus limits: maxDocumentationTableEntries, maxBuildCommentCharacterLength, maxFailedTestsInPrComment. |
codeQuality |
Per-step enabled objects: solutionMigration, treatWarningsAsErrors, directoryPackagesProps, packageSourceMapping. Roslyn steps use complexity / documentation separately. |
dotnet |
skipBuild, skipRequiredSdkInstallCheck, runFormat, checkEditorConfig, skipTests. |
complexity |
enabled, thresholds (linesOfCode, maintainabilityIndex, cyclomaticComplexity), skipFolders, skipFiles. |
documentation |
enabled, member toggles, skipFolders, skipFiles, excludeAutoDetectedGeneratedFiles, additionalGeneratedFileNamePatterns. |
outdated |
mode: "off" | "reportOnly" | "upgrade"; checkTransient. |
Full schema, defaults, and examples: see the Repository-Specific Configuration section in the source repository README.md (this package ships a short summary only).
Documentation
For the full option list, environment variables, workflow details, configuration reference, and troubleshooting, see the project documentation shipped with your distribution (for example the repository that builds this package).
License
This package is distributed under the MIT license. See the LICENSE file in the package for full text.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 2026.5.19.7 | 0 | 5/19/2026 |
| 2026.5.19.5 | 0 | 5/19/2026 |
| 2026.5.19.3 | 0 | 5/19/2026 |
| 2026.5.12.6 | 360 | 5/12/2026 |
| 2026.5.12.4 | 89 | 5/12/2026 |
| 2026.5.12.2 | 94 | 5/12/2026 |
| 2026.5.10.4 | 164 | 5/10/2026 |
| 2026.5.10.3 | 84 | 5/10/2026 |
| 2026.5.9.7 | 154 | 5/9/2026 |
| 2026.5.9.4 | 107 | 5/9/2026 |
| 2026.5.9.2 | 99 | 5/9/2026 |
| 2026.5.8.10 | 158 | 5/8/2026 |
| 2026.5.8.5 | 139 | 5/8/2026 |
| 2026.5.8.4 | 89 | 5/8/2026 |
| 2026.5.7.6 | 136 | 5/7/2026 |
| 2026.5.7.2 | 94 | 5/7/2026 |
| 2026.5.6.1 | 156 | 5/6/2026 |
| 2026.5.5.10 | 127 | 5/5/2026 |
| 2026.5.5.8 | 72 | 5/5/2026 |
| 2026.5.5.7 | 76 | 5/5/2026 |