name: SAST — Semgrep on: push: branches: [main] paths: - 'app/app/**' - 'app/resources/js/**' - 'app/database/migrations/**' - '.semgrep.yml' - '.github/workflows/sast.yml' pull_request: branches: [main] paths: - 'app/app/**' - 'app/resources/js/**' - 'app/database/migrations/**' permissions: contents: read security-events: write jobs: semgrep: runs-on: ubuntu-latest name: Semgrep SAST scan steps: - uses: actions/checkout@v4 - name: Run Semgrep uses: semgrep/semgrep-action@v1 with: config: >- p/php p/javascript p/typescript p/secrets env: # SEMGREP_APP_TOKEN — опциональный, для Semgrep Cloud dashboard. # Без него: open-source режим, результаты только в GitHub Security tab. # Добавить: GitHub → Settings → Secrets → Actions → SEMGREP_APP_TOKEN SEMGREP_APP_TOKEN: ${{ secrets.SEMGREP_APP_TOKEN }} - name: Upload SARIF to GitHub Security tab uses: github/codeql-action/upload-sarif@v3 if: always() with: sarif_file: semgrep.sarif continue-on-error: true