Skip to content

chore(deps): bump lint tooling in lockstep (api + ui) + ui radix/lucide #392

chore(deps): bump lint tooling in lockstep (api + ui) + ui radix/lucide

chore(deps): bump lint tooling in lockstep (api + ui) + ui radix/lucide #392

name: security-deps
on:
push:
branches: [main]
paths:
- "apps/api/**"
- ".github/workflows/apps-api-security-deps.yml"
pull_request:
branches: [main]
schedule:
- cron: "23 6 * * 1"
concurrency:
group: apps-api-security-deps-security-${{ github.ref }}
cancel-in-progress: false
permissions:
contents: read
security-events: write
jobs:
scan:
name: dep vuln scan (osv + audit)
defaults:
run:
working-directory: apps/api
runs-on: ubuntu-24.04
timeout-minutes: 10
env:
OSV_SCANNER_VERSION: "2.3.8"
OSV_SCANNER_SHA256: "bc98e15319ed0d515e3f9235287ba53cdc5535d576d24fd573978ecfe9ab92dc"
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Detect relevant changes
uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: filter
with:
filters: |
code:
- 'apps/api/**'
- '.github/workflows/apps-api-security-deps.yml'
- name: Install osv-scanner CLI
if: steps.filter.outputs.code == 'true'
run: |
set -euo pipefail
curl -sSL -o /tmp/osv-scanner \
"https://github.com/google/osv-scanner/releases/download/v${OSV_SCANNER_VERSION}/osv-scanner_linux_amd64"
echo "${OSV_SCANNER_SHA256} /tmp/osv-scanner" | sha256sum -c -
chmod +x /tmp/osv-scanner
sudo mv /tmp/osv-scanner /usr/local/bin/
osv-scanner --version
- name: Run osv-scanner
if: steps.filter.outputs.code == 'true'
run: |
# Don't fail the step on findings here — we want the SARIF uploaded
# first. Capture exit code, evaluate after upload.
set +e
osv-scanner \
--config=osv-scanner.toml \
--lockfile=bun.lock \
--format=sarif \
--output-file=osv-results.sarif
echo "OSV_EXIT=$?" >> "$GITHUB_ENV"
set -e
- name: Upload osv SARIF
if: always()
uses: github/codeql-action/upload-sarif@7c1e4cf0b20d7c1872b26569c00ba908797a59bf # v4
with:
sarif_file: osv-results.sarif
category: osv-scanner-api
continue-on-error: true
- name: Fail on osv findings
if: steps.filter.outputs.code == 'true'
run: |
if [ "${OSV_EXIT:-0}" != "0" ]; then
echo "osv-scanner exited ${OSV_EXIT} — see SARIF in the Security tab."
exit 1
fi
- name: Set up Bun
if: steps.filter.outputs.code == 'true'
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version: 1.3.14
- name: bun audit
if: steps.filter.outputs.code == 'true'
run: bun audit --audit-level=high