name: Security Scan on: push: branches: [ main, develop ] pull_request: branches: [ main, develop ] schedule: - cron: '0 0 * * 0' # Weekly on Sunday jobs: security: runs-on: ubuntu-latest permissions: contents: read security-events: write # For CodeQL actions: read steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.11' - name: Install dependencies run: | python -m pip install --upgrade pip pip install bandit safety pip install -r backend/requirements.txt - name: Run Bandit security scan run: | bandit -r backend/app -ll continue-on-error: true - name: Check dependencies for known vulnerabilities run: | safety check --json continue-on-error: true - name: Run CodeQL Analysis uses: github/codeql-action/init@v3 with: languages: python - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v3