From fa6f818c33ed35cf4fdc2ab2b9cb8277dc48f97e Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Thu, 31 Jan 2019 17:11:47 +0300 Subject: [PATCH] FUS-263 fus: do not report VCS names for unknown third-party plugins --- .../vcs/statistics/VcsNamesUsagesCollector.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/statistics/VcsNamesUsagesCollector.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/statistics/VcsNamesUsagesCollector.java index 195c8399747f..efa52d2bde39 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/statistics/VcsNamesUsagesCollector.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/statistics/VcsNamesUsagesCollector.java @@ -3,6 +3,8 @@ package com.intellij.openapi.vcs.statistics; import com.intellij.internal.statistic.beans.UsageDescriptor; import com.intellij.internal.statistic.service.fus.collectors.ProjectUsagesCollector; +import com.intellij.internal.statistic.utils.PluginInfo; +import com.intellij.internal.statistic.utils.PluginInfoDetectorKt; import com.intellij.openapi.project.Project; import com.intellij.openapi.vcs.AbstractVcs; import com.intellij.openapi.vcs.ProjectLevelVcsManager; @@ -31,8 +33,15 @@ public class VcsNamesUsagesCollector extends ProjectUsagesCollector { public static Set getDescriptors(@NotNull Project project) { Set usages = new HashSet<>(); - AbstractVcs[] activeVcss = ProjectLevelVcsManager.getInstance(project).getAllActiveVcss(); - List vcsNames = ContainerUtil.map(activeVcss, AbstractVcs::getName); + ProjectLevelVcsManager vcsManager = ProjectLevelVcsManager.getInstance(project); + AbstractVcs[] activeVcss = vcsManager.getAllActiveVcss(); + + List vcsNames = ContainerUtil.map(activeVcss, vcs -> { + PluginInfo pluginInfo = PluginInfoDetectorKt.getPluginInfo(vcs.getClass()); + if (pluginInfo.isDevelopedByJetBrains()) return vcs.getName(); + if (pluginInfo.isSafeToReport()) return "third.party." + pluginInfo.getId(); + return "third.party.other"; + }); for (String vcs : vcsNames) { usages.add(new UsageDescriptor(vcs, 1));