diff --git a/.github/workflows/audit.yml b/.github/workflows/audit.yml new file mode 100644 index 0000000..52c8e0d --- /dev/null +++ b/.github/workflows/audit.yml @@ -0,0 +1,42 @@ +name: Security Audit + +on: + schedule: + - cron: '0 8 * * *' + workflow_dispatch: + +jobs: + audit: + runs-on: ubuntu-latest + permissions: + contents: read + issues: write + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: latest + + - name: Install dependencies + run: pnpm install + + - name: Run security audit + id: audit + run: pnpm audit --audit-level moderate + continue-on-error: true + + - name: Create issue on failure + if: steps.audit.outcome == 'failure' + uses: actions/github-script@v7 + with: + script: | + github.rest.issues.create({ + owner: context.repo.owner, + repo: context.repo.repo, + title: 'Security Audit Failed', + body: 'The daily security audit has failed. Please check the workflow run for details: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}', + labels: ['security', 'audit'] + }); diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5b52071..9932f5b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: - node-version: '22' + node-version: '24' - uses: pnpm/action-setup@v4 with: version: 8