name: Security Scan on: schedule: - cron: 'weekly' push: branches: [main] pull_request: branches: [main] jobs: security: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Run Trivy vulnerability scanner uses: aquasecurity/trivy-action@master with: scan-type: 'fs' scan-ref: '.' severity: 'CRITICAL,HIGH' format: 'sarif' output: 'trivy-results.sarif' - name: Upload Trivy results uses: github/codeql-action/upload-sarif@v2 if: always() with: sarif_file: 'trivy-results.sarif' - name: Create security issue on critical if: failure() && github.event_name == 'schedule' uses: actions/github-script@v7 with: script: | github.rest.issues.create({ owner: context.repo.owner, repo: context.repo.repo, title: '[Security] Critical vulnerabilities detected', body: 'Trivy scan found critical vulnerabilities. Please review the security report.', labels: ['security', 'critical'] })