Skip to content

Commit ba2e89e

Browse files
Wolfe-Jamclaude
andcommitted
fix: resolve GitHub Actions security workflow failures
- Update CodeQL actions from v2 to v3 to fix deprecation warnings - Fix CSP validation script to handle empty results properly - Add security-events write permission to vulnerability scan job - Improve npm audit handling to only fail on high/critical vulnerabilities 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 9084a6d commit ba2e89e

1 file changed

Lines changed: 21 additions & 5 deletions

File tree

.github/workflows/security.yml

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,18 @@ jobs:
2727
run: npm ci
2828

2929
- name: npm audit
30-
run: npm audit --audit-level moderate --json > audit-results.json || true
30+
run: |
31+
npm audit --audit-level moderate --json > audit-results.json || exit_code=$?
32+
if [ -n "$exit_code" ] && [ "$exit_code" -ne 0 ]; then
33+
echo "⚠️ npm audit found vulnerabilities (exit code: $exit_code)"
34+
cat audit-results.json | jq '.vulnerabilities | to_entries | map(select(.value.severity == "high" or .value.severity == "critical")) | length' > /dev/null 2>&1 && \
35+
high_vulns=$(cat audit-results.json | jq '.vulnerabilities | to_entries | map(select(.value.severity == "high" or .value.severity == "critical")) | length')
36+
if [ "$high_vulns" -gt 0 ]; then
37+
echo "❌ Found $high_vulns high/critical vulnerabilities"
38+
exit 1
39+
fi
40+
fi
41+
echo "✅ Security audit completed"
3142
3243
- name: Upload audit results
3344
uses: actions/upload-artifact@v4
@@ -48,13 +59,13 @@ jobs:
4859
uses: actions/checkout@v4
4960

5061
- name: Initialize CodeQL
51-
uses: github/codeql-action/init@v2
62+
uses: github/codeql-action/init@v3
5263
with:
5364
languages: javascript
5465
queries: security-extended,security-and-quality
5566

5667
- name: Perform CodeQL Analysis
57-
uses: github/codeql-action/analyze@v2
68+
uses: github/codeql-action/analyze@v3
5869

5970
# Extension Permission Audit
6071
permission-audit:
@@ -107,7 +118,7 @@ jobs:
107118
exit 1
108119
fi
109120
110-
if find public -name "*.html" -exec grep -l "<script>" {} \;; then
121+
if find public -name "*.html" -exec grep -l "<script>" {} \; 2>/dev/null | grep -q .; then
111122
echo "⚠️ Found inline script tags - ensure they comply with CSP"
112123
fi
113124
@@ -123,6 +134,10 @@ jobs:
123134
vulnerability-scan:
124135
name: 🚨 Dependency Vulnerabilities
125136
runs-on: ubuntu-latest
137+
permissions:
138+
actions: read
139+
contents: read
140+
security-events: write
126141
steps:
127142
- uses: actions/checkout@v4
128143

@@ -135,9 +150,10 @@ jobs:
135150
output: 'trivy-results.sarif'
136151

137152
- name: Upload Trivy scan results to GitHub Security tab
138-
uses: github/codeql-action/upload-sarif@v2
153+
uses: github/codeql-action/upload-sarif@v3
139154
with:
140155
sarif_file: 'trivy-results.sarif'
156+
if: always()
141157

142158
# Generate security report
143159
security-report:

0 commit comments

Comments
 (0)