Skip to content

Commit 3c291d0

Browse files
committed
feat: refactor tc integration and ignore Affected
Signed-off-by: Ruben Romero Montes <[email protected]>
1 parent 3e45576 commit 3c291d0

28 files changed

+1748
-2264
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
<deploy-plugin.version>3.1.1</deploy-plugin.version>
4949

5050
<!-- Dependencies -->
51-
<exhort-api.version>1.0.2</exhort-api.version>
51+
<exhort-api.version>1.0.3</exhort-api.version>
5252
<sentry.version>1.7.27</sentry.version>
5353
<cyclonedx.version>8.0.3</cyclonedx.version>
5454
<spdx.version>1.1.7</spdx.version>

src/main/java/com/redhat/exhort/api/converter/AnalysisReportV3Converter.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,9 @@ private static DependencyReport getReport(com.redhat.exhort.api.v4.DependencyRep
9999
.recommendation(d.getRecommendation())
100100
.issues(issues)
101101
.remediations(getRemediations(d.getIssues()));
102-
d.getTransitive().forEach(t -> dep.addTransitiveItem(getTransitive(t)));
102+
if (d.getTransitive() != null) {
103+
d.getTransitive().forEach(t -> dep.addTransitiveItem(getTransitive(t)));
104+
}
103105
return dep;
104106
}
105107

@@ -119,6 +121,9 @@ private static TransitiveDependencyReport getTransitive(
119121
}
120122

121123
private static Issue getIssue(com.redhat.exhort.api.v4.Issue i) {
124+
if (i == null) {
125+
return null;
126+
}
122127
return new Issue()
123128
.cves(i.getCves())
124129
.id(i.getId())
@@ -133,14 +138,17 @@ private static Issue getIssue(com.redhat.exhort.api.v4.Issue i) {
133138
private static Map<String, Remediation> getRemediations(
134139
List<com.redhat.exhort.api.v4.Issue> issues) {
135140
Map<String, Remediation> remediations = new HashMap<>();
141+
if (issues == null) {
142+
return Collections.emptyMap();
143+
}
136144
issues.forEach(
137145
i -> {
138146
if (i.getRemediation() != null && i.getRemediation().getTrustedContent() != null) {
139147
var tc = i.getRemediation().getTrustedContent();
140148
var r =
141149
new Remediation()
142150
.issueRef(i.getId())
143-
.mavenPackage(tc.getPackage())
151+
.mavenPackage(tc.getRef())
144152
.productStatus(tc.getStatus());
145153
i.getCves().forEach(cve -> remediations.put(i.getId(), r));
146154
}

src/main/java/com/redhat/exhort/integration/Constants.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ private Constants() {}
5252

5353
public static final String SNYK_PROVIDER = "snyk";
5454
public static final String OSS_INDEX_PROVIDER = "oss-index";
55+
public static final String TRUSTED_CONTENT_PROVIDER = "trusted-content";
5556
public static final String UNKNOWN_PROVIDER = "unknown";
5657

5758
public static final String HTTP_UNAUTHENTICATED = "Unauthenticated";

src/main/java/com/redhat/exhort/integration/backend/ExhortIntegration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ public void configure() {
131131
.process(this::processAnalysisRequest)
132132
.to(direct("findVulnerabilities"))
133133
.transform().method(ProviderAggregationStrategy.class, "toReport")
134-
.enrich(direct("recommendationsTrustedContent"), tcResponseAggregation)
134+
.enrich(direct("recommendTrustedContent"), tcResponseAggregation)
135135
.to(direct("report"))
136136
.to(seda("analyticsTrackAnalysis"))
137137
.process(this::cleanUpHeaders);

src/main/java/com/redhat/exhort/integration/providers/ProviderResponseHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ private void incrementCounter(
301301
}
302302
if (i.getRemediation() != null
303303
&& i.getRemediation().getTrustedContent() != null
304-
&& i.getRemediation().getTrustedContent().getPackage() != null) {
304+
&& i.getRemediation().getTrustedContent().getRef() != null) {
305305
counter.remediations.incrementAndGet();
306306
}
307307
});

src/main/java/com/redhat/exhort/integration/providers/ossindex/OssIndexIntegration.java

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -53,48 +53,48 @@ public void configure() {
5353

5454
// fmt:off
5555
from(direct("ossIndexScan"))
56-
.routeId("ossIndexScan")
57-
.transform(method(OssIndexRequestBuilder.class, "split"))
58-
.choice()
56+
.routeId("ossIndexScan")
57+
.transform(method(OssIndexRequestBuilder.class, "split"))
58+
.choice()
5959
.when(method(OssIndexRequestBuilder.class, "missingAuthHeaders"))
60-
.setBody(method(OssIndexResponseHandler.class, "unauthenticatedResponse"))
60+
.setBody(method(OssIndexResponseHandler.class, "unauthenticatedResponse"))
6161
.when(method(OssIndexRequestBuilder.class, "isEmpty"))
62-
.setBody(method(OssIndexResponseHandler.class, "emptyResponse"))
63-
.transform().method(OssIndexResponseHandler.class, "buildReport")
62+
.setBody(method(OssIndexResponseHandler.class, "emptyResponse"))
63+
.transform().method(OssIndexResponseHandler.class, "buildReport")
6464
.endChoice()
6565
.otherwise()
66-
.to(direct("ossSplitReq"))
67-
.transform().method(OssIndexResponseHandler.class, "buildReport");
66+
.to(direct("ossSplitReq"))
67+
.transform().method(OssIndexResponseHandler.class, "buildReport");
6868

6969
from(direct("ossSplitReq"))
70-
.routeId("ossSplitReq")
71-
.split(body(), AggregationStrategies.beanAllowNull(OssIndexResponseHandler.class, "aggregateSplit"))
70+
.routeId("ossSplitReq")
71+
.split(body(), AggregationStrategies.beanAllowNull(OssIndexResponseHandler.class, "aggregateSplit"))
7272
.parallelProcessing()
73-
.transform().method(OssIndexRequestBuilder.class, "buildRequest")
74-
.process(this::processComponentRequest)
73+
.transform().method(OssIndexRequestBuilder.class, "buildRequest")
74+
.process(this::processComponentRequest)
7575
.circuitBreaker()
76-
.faultToleranceConfiguration()
77-
.timeoutEnabled(true)
78-
.timeoutDuration(timeout)
79-
.end()
80-
.to(vertxHttp("{{api.ossindex.host}}"))
81-
.transform(method(OssIndexResponseHandler.class, "responseToIssues"))
76+
.faultToleranceConfiguration()
77+
.timeoutEnabled(true)
78+
.timeoutDuration(timeout)
79+
.end()
80+
.to(vertxHttp("{{api.ossindex.host}}"))
81+
.transform(method(OssIndexResponseHandler.class, "responseToIssues"))
8282
.onFallback()
83-
.process(responseHandler::processResponseError);
83+
.process(responseHandler::processResponseError);
8484

8585
from(direct("ossValidateCredentials"))
86-
.routeId("ossValidateCredentials")
87-
.circuitBreaker()
86+
.routeId("ossValidateCredentials")
87+
.circuitBreaker()
8888
.faultToleranceConfiguration()
89-
.timeoutEnabled(true)
90-
.timeoutDuration(timeout)
89+
.timeoutEnabled(true)
90+
.timeoutDuration(timeout)
9191
.end()
9292
.setBody(constant(List.of(DependencyTree.getDefaultRoot(Constants.MAVEN_PKG_MANAGER))))
9393
.transform().method(OssIndexRequestBuilder.class, "buildRequest")
9494
.process(this::processComponentRequest)
9595
.to(vertxHttp("{{api.ossindex.host}}"))
9696
.setBody(constant("Token validated successfully"))
97-
.onFallback()
97+
.onFallback()
9898
.process(responseHandler::processTokenFallBack);
9999
// fmt:on
100100
}

0 commit comments

Comments
 (0)