name: Security Scan on: push: branches: [main, master] pull_request: branches: [main, master] schedule: - cron: '0 6 * * 1' # Weekly on Monday at 6am UTC permissions: contents: read security-events: write actions: read jobs: codeql: name: CodeQL Analysis runs-on: ubuntu-latest strategy: fail-fast: false matrix: language: ['javascript'] steps: - name: Checkout repository 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 with: category: "/language:${{ matrix.language }}" dependency-review: name: Dependency Review runs-on: ubuntu-latest if: github.event_name == 'pull_request' steps: - name: Checkout repository uses: actions/checkout@v4 - name: Dependency Review uses: actions/dependency-review-action@v4 with: fail-on-severity: high deny-licenses: GPL-3.0, AGPL-3.0 secrets-scan: name: Secret Scanning runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth: 0 - name: TruffleHog OSS uses: trufflesecurity/trufflehog@v3.57.0 with: extra_args: --only-verified