Files
blackroad-operating-system/.github/workflows/security-scan.yml

66 lines
1.6 KiB
YAML

name: "🔒 Security Scan"
on:
push:
branches: [main, master, dev]
pull_request:
branches: [main, master]
schedule:
- cron: '0 0 * * 0'
workflow_dispatch:
permissions:
contents: read
security-events: write
actions: read
jobs:
codeql:
name: CodeQL Analysis
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: python
- name: Autobuild
uses: github/codeql-action/autobuild@v3
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
security-checks:
name: Security Checks
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Check for secrets
run: |
echo "Scanning for potential secrets..."
! grep -rn 'AKIA\|sk-\|ghp_\|gho_\|password\s*=' --include='*.py' --include='*.js' --include='*.env' --include='*.yml' . || echo "Warning: Potential secrets found"
echo "Security scan complete"
- name: Check dependencies
run: |
if [ -f "requirements.txt" ]; then
pip install safety 2>/dev/null || true
safety check -r requirements.txt 2>/dev/null || true
fi
if [ -f "package.json" ]; then
npm install 2>/dev/null || true
npm audit --audit-level=high 2>/dev/null || true
fi
echo "Dependency check complete"
- name: Dependency Review
uses: actions/dependency-review-action@v4
if: github.event_name == 'pull_request'