# SPDX-FileCopyrightText: 2026 Progmasoft # SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.1 name: Security on: push: branches: [main] pull_request: schedule: - cron: "23 4 * * 1" workflow_dispatch: permissions: contents: read concurrency: group: security-${{ github.ref }} cancel-in-progress: true jobs: dependency-review: if: github.event_name == 'pull_request' runs-on: ubuntu-latest steps: - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 with: persist-credentials: false - uses: actions/dependency-review-action@2031cfc080254a8a887f58cffee85186f0e49e48 # v4.9.0 dependency-audit: runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 with: persist-credentials: false - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5 with: version: 11.24.0 run_install: false - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 24 cache: pnpm - run: pnpm install --frozen-lockfile - run: pnpm audit --audit-level high nuget-audit: runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 with: persist-credentials: false - uses: actions/setup-dotnet@26b0ec14cb23fa6904739307f278c14f94c95bf1 # v5 with: dotnet-version: 10.0.x - run: dotnet restore Progmaweb.slnx --locked-mode -warnaserror - run: dotnet list Progmaweb.slnx package --vulnerable --include-transitive