• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

dennisdoomen / packageguard / 32590245670
81%

Build:
DEFAULT BRANCH: main
Ran 22 Aug 2026 06:23PM UTC
Jobs 1
Files 74
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

22 Aug 2026 06:16PM UTC coverage: 78.374% (+0.02%) from 78.351%
32590245670

push

github

web-flow
Migrate remaining raw Path/Directory calls to Pathy's ChainablePath (#235)

Pathy is already a dependency and adopted throughout PackageGuard.Core's
project/config discovery code, but the newer risk-reporting and SBOM
code was still built on raw System.IO.Path/Directory chains -
including some genuinely gnarly directory-vs-file sniffing and
extension-swapping logic in the report path resolvers.

- RiskHtmlReportWriter/RiskSarifReportWriter: replace chained
  Path.Combine/GetFullPath/GetDirectoryName/GetExtension calls with
  ChainablePath's `/` operator, .Directory, .Extension, .IsFile,
  .IsDirectory and .CreateDirectoryRecursively(); the SARIF
  relative-URI computation now uses AsRelativeTo().
- SbomWriter/SbomModelBuilder: simplify output-directory creation and
  root-name resolution.
- NuGetPackageAnalyzer/NuGetPackageSigningRiskEnricher: build the
  nuspec/nupkg cache paths via the `/` operator instead of
  Path.Combine.
- CSharpProjectScanner: drop the one remaining raw Path.GetFullPath
  call in favor of ChainablePath.ToAbsolute().

Also fixes a latent edge case surfaced while migrating
SbomModelBuilder.ResolveRootName: ChainablePath.From throws on an
empty string, unlike the raw Path/File/Directory APIs it replaces, so
an explicit empty-path guard was added to preserve the existing
behavior for SbomWriter.Write(..., projectPath: "", ...).

All public method signatures are unchanged (ChainablePath is used
internally only, converted at the edges via its implicit string
conversions), so no API surface change and no AcceptApiChanges run
needed.

1692 of 2426 branches covered (69.74%)

Branch coverage included in aggregate %.

39 of 51 new or added lines in 7 files covered. (76.47%)

1 existing line in 1 file now uncovered.

5299 of 6494 relevant lines covered (81.6%)

1894.36 hits per line

Uncovered Changes

Lines Coverage ∆ File
8
79.52
0.08% Src/PackageGuard/RiskSarifReportWriter.cs
3
65.86
0.13% Src/PackageGuard/RiskHtmlReportWriter.cs
1
82.02
0.63% Src/PackageGuard.Core/Sbom/SbomModelBuilder.cs

Coverage Regressions

Lines Coverage ∆ File
1
79.52
0.08% Src/PackageGuard/RiskSarifReportWriter.cs
Jobs
ID Job ID Ran Files Coverage
1 32590245670.1 22 Aug 2026 06:23PM UTC 74
78.37
GitHub Action Run
Source Files on build 32590245670
  • Tree
  • List 74
  • Changed 50
  • Source Changed 7
  • Coverage Changed 50
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #32590245670
  • da05fdeb on github
  • Prev Build on main (#32590183046)
  • Next Build on main (#32590322052)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc