You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Description\n\nAdd a CI workflow that validates all source files contain proper copyright and SPDX license headers. The check runs on pull requests and pushes to main, blocking merge if headers are missing.\n\n## Current State\n\nPrerequisite work is complete:\n\n- [x] Copyright headers added to all shell scripts (#304, closed Jan 31)\n- [x] Copyright headers added to all PowerShell scripts (#305, closed Jan 31)\n- [x] Validation script created: scripts/linting/Test-CopyrightHeaders.ps1 (PR #370)\n- [x] npm alias: npm run validate:copyright\n- [x] Contributing docs: docs/contributing/copyright-headers.md\n\n## Remaining Work\n\n- [ ] Add CI workflow file .github/workflows/copyright-headers.yml\n- [ ] Document Test-CopyrightHeaders.ps1 in scripts/linting/README.md\n\n## Acceptance Criteria\n\n- [ ] CI workflow runs on pull requests and pushes to main\n- [ ] Non-zero exit code on missing headers blocks merge\n- [ ] Workflow uses existing npm run validate:copyright -- -FailOnMissing\n- [ ] scripts/linting/README.md documents the validation script\n\n## Suggested Implementation\n\nyaml\nname: Copyright Header Validation\n\non:\n push:\n branches: [main]\n pull_request:\n branches: [main]\n\njobs:\n copyright-headers:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2\n\n - name: Setup Node.js\n uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0\n with:\n node-version: '20'\n\n - name: Install dependencies\n run: npm ci\n\n - name: Validate copyright headers\n shell: pwsh\n run: npm run validate:copyright -- -FailOnMissing\n\n\nThis approach uses existing codebase tooling with no external dependencies, outputs JSON results matching other linting scripts, and includes compliance percentage calculation.\n\n## Time Estimate\n\n30 minutes\n\n## Consolidation Note\n\nThis issue now covers the scope of both the original #307 and #353 (closed as duplicate). All prerequisite header-addition work (#304, #305) is complete."}
Description\n\nAdd a CI workflow that validates all source files contain proper copyright and SPDX license headers. The check runs on pull requests and pushes to main, blocking merge if headers are missing.\n\n## Current State\n\nPrerequisite work is complete:\n\n- [x] Copyright headers added to all shell scripts (#304, closed Jan 31)\n- [x] Copyright headers added to all PowerShell scripts (#305, closed Jan 31)\n- [x] Validation script created:
scripts/linting/Test-CopyrightHeaders.ps1(PR #370)\n- [x] npm alias:npm run validate:copyright\n- [x] Contributing docs:docs/contributing/copyright-headers.md\n\n## Remaining Work\n\n- [ ] Add CI workflow file.github/workflows/copyright-headers.yml\n- [ ] DocumentTest-CopyrightHeaders.ps1inscripts/linting/README.md\n\n## Acceptance Criteria\n\n- [ ] CI workflow runs on pull requests and pushes to main\n- [ ] Non-zero exit code on missing headers blocks merge\n- [ ] Workflow uses existingnpm run validate:copyright -- -FailOnMissing\n- [ ]scripts/linting/README.mddocuments the validation script\n\n## Suggested Implementation\n\nyaml\nname: Copyright Header Validation\n\non:\n push:\n branches: [main]\n pull_request:\n branches: [main]\n\njobs:\n copyright-headers:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2\n\n - name: Setup Node.js\n uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0\n with:\n node-version: '20'\n\n - name: Install dependencies\n run: npm ci\n\n - name: Validate copyright headers\n shell: pwsh\n run: npm run validate:copyright -- -FailOnMissing\n\n\nThis approach uses existing codebase tooling with no external dependencies, outputs JSON results matching other linting scripts, and includes compliance percentage calculation.\n\n## Time Estimate\n\n30 minutes\n\n## Consolidation Note\n\nThis issue now covers the scope of both the original #307 and #353 (closed as duplicate). All prerequisite header-addition work (#304, #305) is complete."}