Skip to content

Commit 79a1f02

Browse files
SLLS-346 record whole folder hotspots scan in telemetry
1 parent f7140de commit 79a1f02

File tree

4 files changed

+30
-1
lines changed

4 files changed

+30
-1
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
<properties>
2626
<jdk.min.version>17</jdk.min.version>
27-
<sonarlint.core.version>10.22.0.81232</sonarlint.core.version>
27+
<sonarlint.core.version>10.23.0.81260</sonarlint.core.version>
2828
<slf4j.version>2.0.17</slf4j.version>
2929
<!-- Version used by Xodus -->
3030
<kotlin.version>1.6.10</kotlin.version>

src/main/java/org/sonarsource/sonarlint/ls/SonarLintLanguageServer.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -800,6 +800,7 @@ public CompletableFuture<Void> scanFolderForHotspots(ScanFolderForHotspotsParams
800800
return CompletableFutures.computeAsync(cancelToken -> {
801801
cancelToken.checkCanceled();
802802
runScan(params);
803+
telemetry.wholeFolderHotspotsAnalysisTriggered();
803804
return null;
804805
});
805806
}

src/main/java/org/sonarsource/sonarlint/ls/telemetry/SonarLintTelemetry.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import javax.annotation.CheckForNull;
2424
import org.sonarsource.sonarlint.core.rpc.protocol.backend.telemetry.TelemetryRpcService;
2525
import org.sonarsource.sonarlint.core.rpc.protocol.client.telemetry.AddQuickFixAppliedForRuleParams;
26+
import org.sonarsource.sonarlint.core.rpc.protocol.client.telemetry.AnalysisReportingTriggeredParams;
27+
import org.sonarsource.sonarlint.core.rpc.protocol.client.telemetry.AnalysisReportingType;
2628
import org.sonarsource.sonarlint.core.rpc.protocol.client.telemetry.DevNotificationsClickedParams;
2729
import org.sonarsource.sonarlint.core.rpc.protocol.client.telemetry.FixSuggestionResolvedParams;
2830
import org.sonarsource.sonarlint.core.rpc.protocol.client.telemetry.HelpAndFeedbackClickedParams;
@@ -108,6 +110,11 @@ public void fixSuggestionResolved(FixSuggestionResolvedParams params) {
108110
actIfEnabled(telemetryRpcService -> telemetryRpcService.fixSuggestionResolved(params));
109111
}
110112

113+
public void wholeFolderHotspotsAnalysisTriggered() {
114+
actIfEnabled(telemetryRpcService ->
115+
telemetryRpcService.analysisReportingTriggered(new AnalysisReportingTriggeredParams(AnalysisReportingType.WHOLE_FOLDER_HOTSPOTS_SCAN_TYPE)));
116+
}
117+
111118
private void actIfEnabled(Consumer<TelemetryRpcService> action) {
112119
if (enabled()) {
113120
action.accept(backendServiceFacade.getBackendService().getTelemetryService());

src/test/java/org/sonarsource/sonarlint/ls/telemetry/SonarLintTelemetryTests.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030
import org.sonarsource.sonarlint.core.rpc.protocol.backend.telemetry.GetStatusResponse;
3131
import org.sonarsource.sonarlint.core.rpc.protocol.backend.telemetry.TelemetryRpcService;
3232
import org.sonarsource.sonarlint.core.rpc.protocol.client.telemetry.AddQuickFixAppliedForRuleParams;
33+
import org.sonarsource.sonarlint.core.rpc.protocol.client.telemetry.AnalysisReportingTriggeredParams;
34+
import org.sonarsource.sonarlint.core.rpc.protocol.client.telemetry.AnalysisReportingType;
3335
import org.sonarsource.sonarlint.core.rpc.protocol.client.telemetry.DevNotificationsClickedParams;
3436
import org.sonarsource.sonarlint.core.rpc.protocol.client.telemetry.FixSuggestionResolvedParams;
3537
import org.sonarsource.sonarlint.core.rpc.protocol.client.telemetry.FixSuggestionStatus;
@@ -257,6 +259,25 @@ void fixSuggestionResolved_when_disabled() {
257259
verify(telemetryService, never()).fixSuggestionResolved(any());
258260
}
259261

262+
@Test
263+
void wholeFolderHotspotsScan_when_enabled() {
264+
var argument = ArgumentCaptor.forClass(AnalysisReportingTriggeredParams.class);
265+
266+
telemetry.wholeFolderHotspotsAnalysisTriggered();
267+
268+
verify(telemetryService).analysisReportingTriggered(argument.capture());
269+
assertThat(argument.getValue().getAnalysisType()).isEqualTo(AnalysisReportingType.WHOLE_FOLDER_HOTSPOTS_SCAN_TYPE);
270+
}
271+
272+
@Test
273+
void wholeFolderHotspotsScan_when_disabled() {
274+
System.setProperty(SonarLintTelemetry.DISABLE_PROPERTY_KEY, "true");
275+
276+
telemetry.wholeFolderHotspotsAnalysisTriggered();
277+
278+
verify(telemetryService, never()).analysisReportingTriggered(any());
279+
}
280+
260281
private static WorkspaceSettings newWorkspaceSettingsWithTelemetrySetting(boolean disableTelemetry) {
261282
return new WorkspaceSettings(disableTelemetry, Collections.emptyMap(), Collections.emptyList(), Collections.emptyList(),
262283
Collections.emptyMap(), false, false, "/path/to/node", false, "");

0 commit comments

Comments
 (0)