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 strategy: fail-fast: false matrix: language: ['javascript', 'typescript', 'python'] steps: - name: Checkout uses: actions/checkout@v4 - name: Initialize CodeQL uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} - name: Autobuild uses: github/codeql-action/autobuild@v3 - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v3 dependency-scan: name: Dependency Scan runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Run npm audit if: hashFiles('package.json') != '' run: npm audit --audit-level=moderate || true - name: Dependency Review uses: actions/dependency-review-action@v4 if: github.event_name == 'pull_request'