-
Notifications
You must be signed in to change notification settings - Fork 7
68 lines (56 loc) · 1.8 KB
/
Copy pathsecurity.yml
File metadata and controls
68 lines (56 loc) · 1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
name: Supply Chain Security
on:
pull_request:
branches: [master]
push:
branches: [master]
schedule:
- cron: '17 9 * * 1'
workflow_dispatch:
permissions:
contents: read
jobs:
dependency-review:
name: Dependency Review
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@9f698171ed81b15d1823a05fc7211befd50c8ae0 # v6.0.3
- name: Reject vulnerable dependency changes
uses: actions/dependency-review-action@2031cfc080254a8a887f58cffee85186f0e49e48 # v4.9.0
with:
fail-on-severity: high
comment-summary-in-pr: always
scan:
name: Audit, Licenses, SBOM, and Secrets
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout full history
uses: actions/checkout@9f698171ed81b15d1823a05fc7211befd50c8ae0 # v6.0.3
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: '22.22.2'
cache: npm
- name: Install locked dependencies
run: npm ci --ignore-scripts
- name: Audit production dependencies
run: npm run security:audit
- name: Enforce reviewed production licenses
run: npm run security:licenses
- name: Generate and validate CycloneDX SBOM
run: npm run security:sbom
- name: Scan full history for secrets
run: bash scripts/verify-secrets.sh
- name: Upload SBOM
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: csm-cyclonedx-sbom
path: .release/sbom.cdx.json
if-no-files-found: error
retention-days: 30