Skip to content

chore(deps): update frontend npm dependencies (#232) #423

chore(deps): update frontend npm dependencies (#232)

chore(deps): update frontend npm dependencies (#232) #423

Workflow file for this run

name: CVE Scanning
permissions:
contents: read
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
jobs:
grype-npm:
name: npm
runs-on: ubuntu-latest
permissions:
contents: read
security-events: write
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # ratchet:actions/checkout@v6
- name: Scan frontend
uses: anchore/scan-action@e1165082ffb1fe366ebaf02d8526e7c4989ea9d2 # ratchet:anchore/scan-action@v7
id: scan
with:
path: git-proxy-java-dashboard/frontend
fail-build: true
severity-cutoff: high
only-fixed: true
config: .grype.yaml
- name: Upload SARIF report
if: ${{ always() }}
uses: github/codeql-action/upload-sarif@e46ed2cbd01164d986452f91f178727624ae40d7 # ratchet:github/codeql-action/upload-sarif@v4
with:
sarif_file: ${{ steps.scan.outputs.sarif }}
- name: Generate table report
if: ${{ always() }}
run: |
export PATH="$(dirname $(find /opt/hostedtoolcache/grype -name grype -type f | head -1)):$PATH"
grype dir:git-proxy-java-dashboard/frontend \
--config .grype.yaml \
--only-fixed \
--output table | tee grype-npm-report.txt || true
- name: Upload scan reports
if: ${{ always() }}
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # ratchet:actions/upload-artifact@v7
with:
name: grype-npm-scan
path: |
grype-npm-report.txt
${{ steps.scan.outputs.json }}
retention-days: 30
grype-gradle:
name: Gradle
if: true
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # ratchet:actions/checkout@v6
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # ratchet:actions/setup-java@v5
with:
distribution: temurin
java-version: 25
cache: gradle
- name: Generate SBOM
run: ./gradlew cyclonedxBom -PskipFrontend
- name: Scan SBOM with Grype
uses: anchore/scan-action@e1165082ffb1fe366ebaf02d8526e7c4989ea9d2 # ratchet:anchore/scan-action@v7
id: scan
with:
sbom: build/reports/cyclonedx/bom.json
fail-build: true
severity-cutoff: high
only-fixed: true
config: .grype.yaml
- name: Generate table report
if: ${{ always() }}
run: |
export PATH="$(dirname $(find /opt/hostedtoolcache/grype -name grype -type f | head -1)):$PATH"
grype sbom:build/reports/cyclonedx/bom.json \
--config .grype.yaml \
--only-fixed \
--output table | tee grype-gradle-report.txt || true
- name: Upload scan reports
if: ${{ always() }}
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # ratchet:actions/upload-artifact@v7
with:
name: grype-gradle-scan
path: |
grype-gradle-report.txt
${{ steps.scan.outputs.json }}
retention-days: 30
depcheck:
name: Dependency Check (Gradle)
if: false # disabled — NVD API reliability issues; re-enable when stable
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # ratchet:actions/checkout@v6
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # ratchet:actions/setup-java@v5
with:
distribution: temurin
java-version: 25
cache: gradle
- name: Cache NVD database
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # ratchet:actions/cache@v5
with:
path: ~/.gradle/dependency-check-data/
key: depcheck-db
save-always: true
- name: Run OWASP Dependency Check
timeout-minutes: 180
env:
NVD_API_KEY: ${{ secrets.NVD_API_KEY }}
OSS_INDEX_USERNAME: ${{ secrets.OSS_INDEX_USERNAME }}
OSS_INDEX_TOKEN: ${{ secrets.OSS_INDEX_TOKEN }}
run: ./gradlew dependencyCheckAggregate --info
- name: Upload report
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # ratchet:actions/upload-artifact@v7
with:
name: dependency-check-report
path: ${{ github.workspace }}/build/reports/dependency-check*
retention-days: 30