Skip to content

fix(ci): add missing SPDX headers to workflow files#47

Merged
hyperpolymath merged 1 commit into
mainfrom
fix/workflow-spdx-headers
Jul 21, 2026
Merged

fix(ci): add missing SPDX headers to workflow files#47
hyperpolymath merged 1 commit into
mainfrom
fix/workflow-spdx-headers

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

The Governance workflow fails on every push here. Its Workflow security linter job requires every .github/workflows/*.yml to carry an SPDX-License-Identifier comment on line 1:

ERROR: .github/workflows/<file> missing SPDX header
Add SPDX header + permissions:

This is a real gate catching a real gap — the files below never had the header. Each failure is another red workflow feeding the ci_activity notification flood.

Licence identifier

MPL-2.0 — taken from this repo's own existing workflow headers, which agree unanimously. It is not assumed or copied from a template. Repos with mixed or absent identifiers were deliberately skipped for a manual decision rather than guessed, because an earlier estate sweep flattened co-developed AGPL repos to MPL-2.0.

Files

boj-build.yml casket-pages.yml cflite_batch.yml cflite_pr.yml codeql.yml governance.yml hypatia-scan.yml instant-sync.yml mirror.yml pages.yml rust-ci.yml scorecard.yml secret-scanner.yml

Pure one-line prepend — no other content is touched.

🤖 Generated with Claude Code

The Governance reusable's "Workflow security linter" job requires every
.github/workflows/*.yml to carry an SPDX-License-Identifier on line 1. These
files were missing it, so the Governance workflow failed on every push — one
more red workflow feeding the ci_activity notification flood.

Identifier (MPL-2.0) is taken from this repo's own existing workflow headers,
which agree unanimously — not assumed. Files: boj-build.yml casket-pages.yml cflite_batch.yml cflite_pr.yml codeql.yml governance.yml hypatia-scan.yml instant-sync.yml mirror.yml pages.yml rust-ci.yml scorecard.yml secret-scanner.yml

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@@ -1,3 +1,4 @@
# SPDX-License-Identifier: MPL-2.0
@@ -1,3 +1,4 @@
# SPDX-License-Identifier: MPL-2.0
@@ -1,3 +1,4 @@
# SPDX-License-Identifier: MPL-2.0
@@ -1,3 +1,4 @@
# SPDX-License-Identifier: MPL-2.0
@@ -1,3 +1,4 @@
# SPDX-License-Identifier: MPL-2.0
@@ -1,3 +1,4 @@
# SPDX-License-Identifier: MPL-2.0
@github-actions

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 66 issues detected

Severity Count
🔴 Critical 0
🟠 High 36
🟡 Medium 30
View findings
[
  {
    "reason": "No test directory or test files found",
    "type": "no_tests",
    "file": "/home/runner/work/docmatrix/docmatrix",
    "action": "flag",
    "rule_module": "honest_completion",
    "severity": "high",
    "deduction": 20
  },
  {
    "reason": "Action actions/checkout@v4 needs attention",
    "type": "unpinned_action",
    "file": "pages.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Action actions/checkout@v4 needs attention",
    "type": "unpinned_action",
    "file": "pages.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Action actions/upload-pages-artifact@v3 needs attention",
    "type": "unpinned_action",
    "file": "pages.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Action actions/deploy-pages@v4 needs attention",
    "type": "unpinned_action",
    "file": "pages.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "codeql.yml lists `language: javascript-typescript` but the repo has no source files in any CodeQL-scannable language. The analyze job will exit 'no source files' on every run. Switch the matrix to `actions` (which scans workflow files — every repo has those).",
    "type": "codeql_language_matrix_mismatch",
    "file": "codeql.yml",
    "action": "switch_codeql_matrix_to_actions",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "Issue in push-email-notify.yml",
    "type": "missing_timeout_minutes",
    "file": "push-email-notify.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in instant-sync.yml",
    "type": "secret_action_without_presence_gate",
    "file": "instant-sync.yml",
    "action": "peter-evans/repository-dispatch",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "Issue in mirror.yml",
    "type": "secret_action_without_presence_gate",
    "file": "mirror.yml",
    "action": "webfactory/ssh-agent",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "Issue in mirror.yml",
    "type": "secret_action_without_presence_gate",
    "file": "mirror.yml",
    "action": "webfactory/ssh-agent",
    "rule_module": "workflow_audit",
    "severity": "high"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@hyperpolymath
hyperpolymath merged commit 99d3c5d into main Jul 21, 2026
20 of 26 checks passed
@hyperpolymath
hyperpolymath deleted the fix/workflow-spdx-headers branch July 21, 2026 12:08
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.

2 participants