Skip to content

Conversation

@littleKitchen
Copy link
Contributor

Summary

Fixes #306

Adds Test-CopyrightHeaders.ps1 script that validates the presence of copyright and SPDX license headers in source files.

Changes

New Files

  • scripts/linting/Test-CopyrightHeaders.ps1 - Main validation script
  • scripts/tests/linting/Test-CopyrightHeaders.Tests.ps1 - Pester tests

Modified Files

  • package.json - Added validate:copyright npm script

Features

  • Scans .ps1, .psm1, .psd1, .sh files by default
  • Checks for # Copyright (c) Microsoft Corporation. line
  • Checks for # SPDX-License-Identifier: MIT line
  • Handles shebang and #Requires statement positioning (checks first 15 lines)
  • Outputs JSON results matching existing format
  • Supports -FailOnMissing flag for CI integration
  • Includes compliance percentage calculation

Testing

Pester tests cover:

  • Files with valid headers
  • Files missing copyright line
  • Files missing SPDX line
  • Files missing both headers
  • Files with #Requires statements
  • Parameter validation
  • Output format validation

Adds Test-CopyrightHeaders.ps1 script that validates the presence of
copyright and SPDX license headers in source files.

Features:
- Scans .ps1, .psm1, .psd1, .sh files by default
- Checks for 'Copyright (c) Microsoft Corporation.' line
- Checks for 'SPDX-License-Identifier: MIT' line
- Handles shebang and #Requires statement positioning
- Outputs JSON results to logs/copyright-header-results.json
- Supports -FailOnMissing for CI integration

Also includes:
- npm script: validate:copyright
- Pester tests for all validation scenarios

Fixes microsoft#306
@littleKitchen littleKitchen requested a review from a team as a code owner January 31, 2026 00:50
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.

feat: add PowerShell script to validate copyright headers

1 participant