-
Notifications
You must be signed in to change notification settings - Fork 0
85 lines (75 loc) · 2.66 KB
/
dependency-scan.yml
File metadata and controls
85 lines (75 loc) · 2.66 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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
name: Dependency CVE scan
# ROADMAP §6 N6.4 — weekly dependency-CVE scan over the Gradle dep tree.
# Uses GitHub's first-party dependency-review action (no API key needed) plus
# OSV-Scanner for an SBOM-level cross-check that goes beyond the GitHub
# vulnerability database. Runs:
# - Sundays 06:00 UTC (cron)
# - On any change to gradle/libs.versions.toml or build.gradle.kts files (PR + push)
# - On manual dispatch
#
# Failure threshold: any HIGH or CRITICAL CVE in a runtime-classpath dependency
# fails the workflow. MEDIUM and below are reported but non-blocking.
on:
schedule:
- cron: "0 6 * * 0"
pull_request:
paths:
- "gradle/libs.versions.toml"
- "gradle/tools.versions.toml"
- "**/build.gradle.kts"
- "settings.gradle.kts"
- ".github/workflows/dependency-scan.yml"
push:
branches: [ main, master ]
paths:
- "gradle/libs.versions.toml"
- "gradle/tools.versions.toml"
- "**/build.gradle.kts"
- "settings.gradle.kts"
workflow_dispatch:
permissions:
contents: read
pull-requests: write
security-events: write
jobs:
github-dependency-review:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
submodules: recursive
- name: Run dependency-review
uses: actions/dependency-review-action@4901385134134e04cec5fbe5ddfe3b2c5bd5d976 # v4
with:
fail-on-severity: high
comment-summary-in-pr: on-failure
osv-scanner:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
submodules: recursive
- name: Set up JDK 17
uses: actions/setup-java@c1e323688fd81a25caa38c78aa6df2d33d3e20d9 # v4
with:
java-version: 17
distribution: temurin
- name: Cache Gradle
uses: gradle/actions/setup-gradle@48b5f213c81028ace310571dc5ec0fbbca0b2947 # v4
- name: Generate Gradle dependency tree
run: ./gradlew :app:dependencies --configuration releaseRuntimeClasspath > gradle-deps.txt
- name: Run OSV-Scanner against the lockfiles + dep tree
uses: google/osv-scanner-action/osv-scanner-action@e69cc6c86b31f1e7e23935bbe7031b50e51082de # v2.0.2
with:
scan-args: |-
--recursive
--skip-git
./
continue-on-error: false
- name: Upload dep tree artifact
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: gradle-dep-tree
path: gradle-deps.txt