Skip to content

ci: add copyright header validation to GitHub Actions #307

@WilliamBerryiii

Description

@WilliamBerryiii

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."}

Metadata

Metadata

Labels

ciContinuous integrationfeatureNew feature triggering minor version bump

Type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions