Skip to content

Commit 9a992c2

Browse files
traskjack-berg
andauthored
Replace NVD with Sonatype OSS Index (#8186)
Co-authored-by: Jack Berg <34418638+jack-berg@users.noreply.github.com>
1 parent d688fa6 commit 9a992c2

File tree

12 files changed

+38
-66
lines changed

12 files changed

+38
-66
lines changed

.github/repository-settings.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,8 @@ private admin repo.
1010

1111
- `GPG_PASSWORD` - stored in OpenTelemetry-Java 1Password
1212
- `GPG_PRIVATE_KEY` - stored in OpenTelemetry-Java 1Password
13-
- `NVD_API_KEY` - stored in OpenTelemetry-Java 1Password
14-
- Generated at https://nvd.nist.gov/developers/request-an-api-key
15-
- Key is associated with [@trask](https://github.com/trask)'s gmail address
13+
- `SONATYPE_OSS_INDEX_USER` - owned by [@jack-berg](https://github.com/jack-berg)
14+
- `SONATYPE_OSS_INDEX_PASSWORD` - owned by [@jack-berg](https://github.com/jack-berg)
1615
- `SONATYPE_KEY` - owned by [@jack-berg](https://github.com/jack-berg)
1716
- `SONATYPE_USER` - owned by [@jack-berg](https://github.com/jack-berg)
1817

.github/workflows/owasp-dependency-check-daily.yml renamed to .github/workflows/oss-index-audit-daily.yml

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# the benefit of this over renovate is that this also analyzes transitive dependencies
22
# while renovate (at least currently) only analyzes top-level dependencies
3-
name: OWASP dependency check (daily)
3+
name: OSS Index dependency audit (daily)
44

55
on:
66
schedule:
@@ -24,17 +24,20 @@ jobs:
2424
- name: Set up gradle
2525
uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5.0.2
2626

27-
- name: Check dependencies
28-
run: ./gradlew dependencyCheckAnalyze
27+
- run: ./gradlew ossIndexAudit
28+
id: audit
29+
continue-on-error: true
2930
env:
30-
NVD_API_KEY: ${{ secrets.NVD_API_KEY }}
31+
SONATYPE_OSS_INDEX_USER: ${{ secrets.SONATYPE_OSS_INDEX_USER }}
32+
SONATYPE_OSS_INDEX_PASSWORD: ${{ secrets.SONATYPE_OSS_INDEX_PASSWORD }}
3133
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
3234

33-
- name: Upload report
34-
if: always()
35-
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
36-
with:
37-
path: javaagent/build/reports
35+
- name: Print vulnerability report
36+
if: steps.audit.outcome == 'failure'
37+
run: |
38+
echo "=== OSS Index Vulnerability Report ==="
39+
find . -name "oss-index-cyclonedx-bom.json" | xargs cat
40+
exit 1
3841
3942
workflow-notification:
4043
permissions:

all/build.gradle.kts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ plugins {
55
description = "OpenTelemetry All"
66
otelJava.moduleName.set("io.opentelemetry.all")
77

8-
// Skip OWASP dependencyCheck task on test module
9-
dependencyCheck {
10-
skip = true
8+
// Skip ossIndexAudit on test module
9+
tasks.named("ossIndexAudit") {
10+
enabled = false
1111
}
1212

1313
val testTasks = mutableListOf<Task>()

api/testing-internal/build.gradle.kts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ dependencies {
1515
implementation("org.mockito:mockito-core")
1616
}
1717

18-
// Skip OWASP dependencyCheck task on test module
19-
dependencyCheck {
20-
skip = true
18+
// Skip ossIndexAudit on test module
19+
tasks.named("ossIndexAudit") {
20+
enabled = false
2121
}

buildSrc/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,6 @@ dependencies {
4848
implementation("net.ltgt.gradle:gradle-errorprone-plugin:5.1.0")
4949
implementation("net.ltgt.gradle:gradle-nullaway-plugin:3.0.0")
5050
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:2.2.21")
51-
implementation("org.owasp:dependency-check-gradle:12.2.0")
51+
implementation("org.sonatype.gradle.plugins:scan-gradle-plugin:3.1.5")
5252
implementation("ru.vyarus:gradle-animalsniffer-plugin:2.0.1")
5353
}

buildSrc/src/main/kotlin/otel.java-conventions.gradle.kts

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ plugins {
1212
id("otel.errorprone-conventions")
1313
id("otel.jacoco-conventions")
1414
id("otel.spotless-conventions")
15-
id("org.owasp.dependencycheck")
15+
id("org.sonatype.gradle.plugins.scan")
1616
}
1717

1818
val otelJava = extensions.create<OtelJavaExtension>("otelJava")
@@ -48,26 +48,10 @@ checkstyle {
4848
configProperties["rootDir"] = rootDir
4949
}
5050

51-
dependencyCheck {
52-
skipConfigurations = mutableListOf(
53-
"errorprone",
54-
"checkstyle",
55-
"annotationProcessor",
56-
"java9AnnotationProcessor",
57-
"moduleAnnotationProcessor",
58-
"testAnnotationProcessor",
59-
"testJpmsAnnotationProcessor",
60-
"animalsniffer",
61-
"spotless996155815", // spotless996155815 is a weird configuration that's only added in jaeger-proto, jaeger-remote-sampler
62-
"js2p",
63-
"jmhAnnotationProcessor",
64-
"jmhBasedTestAnnotationProcessor",
65-
"jmhCompileClasspath",
66-
"jmhRuntimeClasspath",
67-
"jmhRuntimeOnly")
68-
failBuildOnCVSS = 7.0f // fail on high or critical CVE
69-
analyzers.assemblyEnabled = false // not sure why its trying to analyze .NET assemblies
70-
nvd.apiKey = System.getenv("NVD_API_KEY")
51+
ossIndexAudit {
52+
username = System.getenv("SONATYPE_OSS_INDEX_USER") ?: ""
53+
password = System.getenv("SONATYPE_OSS_INDEX_PASSWORD") ?: ""
54+
outputFormat = org.sonatype.gradle.plugins.scan.ossindex.OutputFormat.JSON_CYCLONE_DX_1_4
7155
}
7256

7357
val testJavaVersion = gradle.startParameter.projectProperties.get("testJavaVersion")?.let(JavaVersion::toVersion)

context/build.gradle.kts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,6 @@ dependencies {
1717
testImplementation("com.google.guava:guava")
1818
}
1919

20-
dependencyCheck {
21-
skipConfigurations.add("braveInOtelTestAnnotationProcessor")
22-
skipConfigurations.add("grpcInOtelTestAnnotationProcessor")
23-
skipConfigurations.add("otelAsBraveTestAnnotationProcessor")
24-
skipConfigurations.add("otelInBraveTestAnnotationProcessor")
25-
skipConfigurations.add("otelInGrpcTestAnnotationProcessor")
26-
skipConfigurations.add("storageWrappersTestAnnotationProcessor")
27-
skipConfigurations.add("strictContextEnabledTestAnnotationProcessor")
28-
}
29-
3020
testing {
3121
suites {
3222
register<JvmTestSuite>("grpcInOtelTest") {

custom-checks/build.gradle.kts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ configurations {
8181
}
8282
}
8383

84-
// Skip OWASP dependencyCheck task on test module
85-
dependencyCheck {
86-
skip = true
84+
// Skip ossIndexAudit on test module
85+
tasks.named("ossIndexAudit") {
86+
enabled = false
8787
}

exporters/otlp/testing-internal/build.gradle.kts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ dependencies {
3838
implementation("org.mock-server:mockserver-netty")
3939
}
4040

41-
// Skip OWASP dependencyCheck task on test module
42-
dependencyCheck {
43-
skip = true
41+
// Skip ossIndexAudit on test module
42+
tasks.named("ossIndexAudit") {
43+
enabled = false
4444
}

integration-tests/otlp/build.gradle.kts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ tasks {
4343
}
4444
}
4545

46-
// Skip OWASP dependencyCheck task on test module
47-
dependencyCheck {
48-
skip = true
46+
// Skip ossIndexAudit on test module
47+
tasks.named("ossIndexAudit") {
48+
enabled = false
4949
}

0 commit comments

Comments
 (0)