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@11bd71901bbe5b1630ceea73d27597364c9af683 - name: Initialize CodeQL uses: github/codeql-action/init@ff0a06e83cb2de871e5a09832bc6a81e7276941f with: languages: ${{ matrix.language }} - name: Autobuild uses: github/codeql-action/autobuild@ff0a06e83cb2de871e5a09832bc6a81e7276941f - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@ff0a06e83cb2de871e5a09832bc6a81e7276941f dependency-scan: name: Dependency Scan runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - name: Run npm audit if: hashFiles('package.json') != '' run: npm audit --audit-level=moderate || true - name: Dependency Review uses: actions/dependency-review-action@3b139cfc5fae8b618d3eae3571e89a4315193b17 if: github.event_name == 'pull_request'