Skip to content

Conversation

@littleKitchen
Copy link
Contributor

Summary

Resolves #324

Moves inline class definitions from Test-DependencyPinning.ps1 to a dedicated module for improved reusability and testability.

Changes

New: scripts/security/Modules/SecurityClasses.psm1

  • DependencyViolation class - represents a single pinning violation
    • Default constructor
    • Parameterized constructor for common use cases
  • ComplianceReport class - aggregates violations and generates reports
    • AddViolation() method
    • CalculateScore() method
    • ToHashtable() method for serialization
  • Full documentation with examples

Updated: Test-DependencyPinning.ps1

  • Added using module import for SecurityClasses.psm1
  • Removed ~35 lines of inline class definitions

Testing

  • npm run lint:ps - PSScriptAnalyzer passes
  • npm run test:ps - All Pester tests pass (779 passed)

Notes

Follows the pattern established by FrontmatterValidation.psm1 in the linting modules.

…shared module

Resolves microsoft#324

- Create scripts/security/Modules/SecurityClasses.psm1 with:
  - DependencyViolation class with constructor overloads
  - ComplianceReport class with helper methods (AddViolation, CalculateScore, ToHashtable)
  - Documentation and examples

- Update Test-DependencyPinning.ps1:
  - Add 'using module' import for SecurityClasses.psm1
  - Remove inline class definitions (~35 lines)

This follows the pattern established by FrontmatterValidation.psm1 and
improves reusability and testability of the security scanning infrastructure.
@littleKitchen littleKitchen requested a review from a team as a code owner January 31, 2026 06:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Issue]: Move DependencyViolation and ComplianceReport classes to dedicated module

1 participant