Skip to content

Dependency Audit

Dependency Audit #142

Workflow file for this run

name: Dependency Audit
on:
schedule:
- cron: "23 6 * * *"
pull_request:
paths:
- "package.json"
- "packages/*/package.json"
- "bun.lock"
- "bun.lockb"
workflow_dispatch: {}
permissions:
contents: read
issues: write
pull-requests: write
jobs:
audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
- uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Run audit
id: audit
run: |
set +e
bun audit --level high 2>&1 | tee audit-output.txt
echo "exit_code=${PIPESTATUS[0]}" >> $GITHUB_OUTPUT
- name: Comment on PR
if: github.event_name == 'pull_request' && steps.audit.outputs.exit_code != '0'
uses: actions/github-script@373c709c69115d41ff229c7e5df9f8788daa9553 # v9
with:
script: |
const fs = require('fs');
const output = fs.readFileSync('audit-output.txt', 'utf8');
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: `## Dependency Audit Failed\n\n\`\`\`\n${output.slice(0, 60000)}\n\`\`\`\n\nPlease review and address HIGH/CRITICAL vulnerabilities.`
});
- name: Create issue on schedule failure
if: github.event_name == 'schedule' && steps.audit.outputs.exit_code != '0'
uses: actions/github-script@373c709c69115d41ff229c7e5df9f8788daa9553 # v9
with:
script: |
const fs = require('fs');
const output = fs.readFileSync('audit-output.txt', 'utf8');
const today = new Date().toISOString().split('T')[0];
await github.rest.issues.create({
owner: context.repo.owner,
repo: context.repo.repo,
title: `Dependency Audit: vulnerabilities found (${today})`,
body: `## Audit Results\n\n\`\`\`\n${output.slice(0, 60000)}\n\`\`\``,
labels: ['security', 'dependencies']
});
- name: Fail on vulnerabilities
if: steps.audit.outputs.exit_code != '0'
run: exit 1