]> source.dussan.org Git - sonarqube.git/commitdiff
Remove security hotspot measures
authorJanos Gyerik <janos.gyerik@sonarsource.com>
Wed, 4 Jul 2018 09:29:06 +0000 (11:29 +0200)
committerSonarTech <sonartech@sonarsource.com>
Tue, 17 Jul 2018 18:21:23 +0000 (20:21 +0200)
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/issue/IssueCounter.java
server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/issue/IssueCounterTest.java
server/sonar-server/src/main/java/org/sonar/server/measure/live/IssueMetricFormulaFactoryImpl.java
server/sonar-web/src/main/js/components/SourceViewer/components/MeasuresOverlayMeasure.tsx
sonar-core/src/main/resources/org/sonar/l10n/core.properties
sonar-plugin-api/src/main/java/org/sonar/api/measures/CoreMetrics.java

index 5f78413704533926615c511fd8262db8e9bf442f..17e1df16efb6d284d39772bd4b641b6f64834fe4 100644 (file)
@@ -30,7 +30,6 @@ import org.sonar.api.measures.CoreMetrics;
 import org.sonar.api.rules.RuleType;
 import org.sonar.ce.task.projectanalysis.component.Component;
 import org.sonar.core.issue.DefaultIssue;
-import org.sonar.ce.task.projectanalysis.component.Component;
 import org.sonar.ce.task.projectanalysis.measure.Measure;
 import org.sonar.ce.task.projectanalysis.measure.MeasureRepository;
 import org.sonar.ce.task.projectanalysis.metric.Metric;
@@ -97,13 +96,11 @@ public class IssueCounter extends IssueVisitor {
     .put(RuleType.CODE_SMELL, CoreMetrics.CODE_SMELLS_KEY)
     .put(RuleType.BUG, CoreMetrics.BUGS_KEY)
     .put(RuleType.VULNERABILITY, CoreMetrics.VULNERABILITIES_KEY)
-    .put(RuleType.SECURITY_HOTSPOT, CoreMetrics.SECURITY_HOTSPOTS_KEY)
     .build();
   private static final Map<RuleType, String> TYPE_TO_NEW_METRIC_KEY = ImmutableMap.<RuleType, String>builder()
     .put(RuleType.CODE_SMELL, CoreMetrics.NEW_CODE_SMELLS_KEY)
     .put(RuleType.BUG, CoreMetrics.NEW_BUGS_KEY)
     .put(RuleType.VULNERABILITY, CoreMetrics.NEW_VULNERABILITIES_KEY)
-    .put(RuleType.SECURITY_HOTSPOT, CoreMetrics.NEW_SECURITY_HOTSPOTS_KEY)
     .build();
 
   private final PeriodHolder periodHolder;
@@ -264,12 +261,6 @@ public class IssueCounter extends IssueVisitor {
           // Other statuses are ignored
       }
     }
-
-    void addNewSecurityHotspot(DefaultIssue issue) {
-      if (issue.resolution() == null) {
-        typeBag.add(issue.type());
-      }
-    }
   }
 
   /**
@@ -289,8 +280,6 @@ public class IssueCounter extends IssueVisitor {
     void addOnPeriod(DefaultIssue issue) {
       if (issue.type() != RuleType.SECURITY_HOTSPOT) {
         counterForPeriod.add(issue);
-      } else {
-        counterForPeriod.addNewSecurityHotspot(issue);
       }
     }
 
index 45f2049e18765a5f5e3621f8865727e8499f7e28..0794d75dea38a312d351d9b77b3835f414be5714 100644 (file)
@@ -101,8 +101,6 @@ public class IssueCounterTest {
   static final Metric NEW_CODE_SMELLS_METRIC = new MetricImpl(20, CoreMetrics.NEW_CODE_SMELLS_KEY, CoreMetrics.NEW_CODE_SMELLS_KEY, INT);
   static final Metric NEW_BUGS_METRIC = new MetricImpl(21, CoreMetrics.NEW_BUGS_KEY, CoreMetrics.NEW_BUGS_KEY, INT);
   static final Metric NEW_VULNERABILITIES_METRIC = new MetricImpl(22, CoreMetrics.NEW_VULNERABILITIES_KEY, CoreMetrics.NEW_VULNERABILITIES_KEY, INT);
-  static final Metric SECURITY_HOTSPOTS_METRIC = new MetricImpl(24, CoreMetrics.SECURITY_HOTSPOTS_KEY, CoreMetrics.SECURITY_HOTSPOTS_KEY, INT);
-  static final Metric NEW_SECURITY_HOTSPOTS_METRIC = new MetricImpl(25, CoreMetrics.NEW_SECURITY_HOTSPOTS_KEY, CoreMetrics.NEW_SECURITY_HOTSPOTS_KEY, INT);
 
   @Rule
   public BatchReportReaderRule reportReader = new BatchReportReaderRule();
@@ -137,9 +135,7 @@ public class IssueCounterTest {
     .add(VULNERABILITIES_METRIC)
     .add(NEW_CODE_SMELLS_METRIC)
     .add(NEW_BUGS_METRIC)
-    .add(NEW_VULNERABILITIES_METRIC)
-    .add(SECURITY_HOTSPOTS_METRIC)
-    .add(NEW_SECURITY_HOTSPOTS_METRIC);
+    .add(NEW_VULNERABILITIES_METRIC);
 
   @Rule
   public MeasureRepositoryRule measureRepository = MeasureRepositoryRule.create(treeRootHolder, metricRepository);
@@ -325,7 +321,7 @@ public class IssueCounterTest {
   }
 
   @Test
-  public void count_hotspots() {
+  public void exclude_hotspots_from_issue_counts() {
     periodsHolder.setPeriod(null);
 
     // bottom-up traversal -> from files to project
@@ -344,27 +340,23 @@ public class IssueCounterTest {
     underTest.beforeComponent(PROJECT);
     underTest.afterComponent(PROJECT);
 
-    assertThat(measureRepository.getRawMeasure(FILE1, SECURITY_HOTSPOTS_METRIC).get().getIntValue()).isEqualTo(2);
     assertThat(measureRepository.getRawMeasure(FILE1, ISSUES_METRIC).get().getIntValue()).isEqualTo(2);
     assertThat(measureRepository.getRawMeasure(FILE1, OPEN_ISSUES_METRIC).get().getIntValue()).isEqualTo(2);
     assertThat(measureRepository.getRawMeasure(FILE1, CONFIRMED_ISSUES_METRIC).get().getIntValue()).isEqualTo(0);
 
-    assertThat(measureRepository.getRawMeasure(FILE2, SECURITY_HOTSPOTS_METRIC).get().getIntValue()).isEqualTo(1);
     assertThat(measureRepository.getRawMeasure(FILE2, ISSUES_METRIC).get().getIntValue()).isEqualTo(1);
     assertThat(measureRepository.getRawMeasure(FILE2, OPEN_ISSUES_METRIC).get().getIntValue()).isEqualTo(1);
     assertThat(measureRepository.getRawMeasure(FILE2, CONFIRMED_ISSUES_METRIC).get().getIntValue()).isEqualTo(0);
 
-    assertThat(measureRepository.getRawMeasure(FILE3, SECURITY_HOTSPOTS_METRIC).get().getIntValue()).isEqualTo(0);
     assertThat(measureRepository.getRawMeasure(FILE3, ISSUES_METRIC).get().getIntValue()).isEqualTo(0);
 
-    assertThat(measureRepository.getRawMeasure(PROJECT, SECURITY_HOTSPOTS_METRIC).get().getIntValue()).isEqualTo(3);
     assertThat(measureRepository.getRawMeasure(PROJECT, ISSUES_METRIC).get().getIntValue()).isEqualTo(3);
     assertThat(measureRepository.getRawMeasure(PROJECT, OPEN_ISSUES_METRIC).get().getIntValue()).isEqualTo(3);
     assertThat(measureRepository.getRawMeasure(PROJECT, CONFIRMED_ISSUES_METRIC).get().getIntValue()).isEqualTo(0);
   }
 
   @Test
-  public void count_new_hotspots_excluded_from_other_raw_issue_counts() {
+  public void exclude_new_hotspots_from_issue_counts() {
     Period period = newPeriod(1500000000000L);
     periodsHolder.setPeriod(period);
 
@@ -395,14 +387,12 @@ public class IssueCounterTest {
     assertVariation(FILE1, NEW_BLOCKER_ISSUES_METRIC, 0);
     assertVariation(FILE1, NEW_MAJOR_ISSUES_METRIC, 0);
     assertVariation(FILE1, NEW_VULNERABILITIES_METRIC, 0);
-    assertVariation(FILE1, NEW_SECURITY_HOTSPOTS_METRIC, 3);
 
     assertVariation(PROJECT, NEW_ISSUES_METRIC, 0);
     assertVariation(PROJECT, NEW_CRITICAL_ISSUES_METRIC, 0);
     assertVariation(PROJECT, NEW_BLOCKER_ISSUES_METRIC, 0);
     assertVariation(PROJECT, NEW_MAJOR_ISSUES_METRIC, 0);
     assertVariation(PROJECT, NEW_VULNERABILITIES_METRIC, 0);
-    assertVariation(PROJECT, NEW_SECURITY_HOTSPOTS_METRIC, 3);
   }
 
   private void assertVariation(Component component, Metric metric, int expectedVariation) {
index 756ecf804046cb8c1cf76925518a22eddc08c69c..def6ce168c056b2fa25e688ab814ef79dc5e0d50 100644 (file)
@@ -44,9 +44,6 @@ public class IssueMetricFormulaFactoryImpl implements IssueMetricFormulaFactory
     new IssueMetricFormula(CoreMetrics.VULNERABILITIES, false,
       (context, issues) -> context.setValue(issues.countUnresolvedByType(RuleType.VULNERABILITY, false))),
 
-    new IssueMetricFormula(CoreMetrics.SECURITY_HOTSPOTS, false,
-      (context, issues) -> context.setValue(issues.countUnresolvedByType(RuleType.SECURITY_HOTSPOT, false))),
-
     new IssueMetricFormula(CoreMetrics.VIOLATIONS, false,
       (context, issues) -> context.setValue(issues.countUnresolved(false))),
 
@@ -116,9 +113,6 @@ public class IssueMetricFormulaFactoryImpl implements IssueMetricFormulaFactory
     new IssueMetricFormula(CoreMetrics.NEW_VULNERABILITIES, true,
       (context, issues) -> context.setLeakValue(issues.countUnresolvedByType(RuleType.VULNERABILITY, true))),
 
-    new IssueMetricFormula(CoreMetrics.NEW_SECURITY_HOTSPOTS, true,
-      (context, issues) -> context.setLeakValue(issues.countUnresolvedByType(RuleType.SECURITY_HOTSPOT, true))),
-
     new IssueMetricFormula(CoreMetrics.NEW_VIOLATIONS, true,
       (context, issues) -> context.setLeakValue(issues.countUnresolved(true))),
 
index 7e00a59b32d1c9a1e9e59898de4ba153a2f60ced..7a41a9ef001638f7c390ac61b36f08409c799ed9 100644 (file)
@@ -39,7 +39,7 @@ export default function MeasuresOverlayMeasure({ measure }: Props) {
       data-metric={measure.metric.key}
       key={measure.metric.key}>
       <span className="measure-name">
-        {['bugs', 'vulnerabilities', 'code_smells', 'security_hotspots'].includes(measure.metric.key) && (
+        {['bugs', 'vulnerabilities', 'code_smells'].includes(measure.metric.key) && (
           <IssueTypeIcon className="little-spacer-right" query={measure.metric.key} />
         )}
         {getLocalizedMetricName(measure.metric)}
index dffc57e27bec79aa97e52fda2fc17e6c68ddc5df..f6479c8c75cecd36ba86f18392f3640ff2ebb692 100644 (file)
@@ -1808,8 +1808,6 @@ metric.new_reliability_rating.extra_short_name=Rating
 metric.new_reliability_remediation_effort.description=Reliability remediation effort on new code
 metric.new_reliability_remediation_effort.name=Reliability Remediation Effort on New Code
 metric.new_reliability_remediation_effort.extra_short_name=Remediation Effort
-metric.new_security_hotspots.description=New Security Hotspots
-metric.new_security_hotspots.name=New Security Hotspots
 metric.new_security_rating.description=Security rating on new code
 metric.new_security_rating.name=Security Rating on New Code
 metric.new_security_rating.extra_short_name=Rating
@@ -1910,8 +1908,6 @@ metric.rfc.description=Response for Class
 metric.rfc.name=Response for Class
 metric.rfc_distribution.description=Class distribution /RFC
 metric.rfc_distribution.name=Class Distribution / RFC
-metric.security_hotspots.description=Security Hotspots
-metric.security_hotspots.name=Security Hotspots
 metric.security_rating.description=Security rating
 metric.security_rating.name=Security Rating
 metric.security_rating.extra_short_name=Rating
index c3be7bb7d632a1a97a4dec367fb59e627464d030..f746645a91b5ba6c811fd6b1030896f2ec0d7bf9 100644 (file)
@@ -1978,45 +1978,6 @@ public final class CoreMetrics {
     .setDeleteHistoricalData(true)
     .create();
 
-  /**
-   * SonarQube Quality Model
-   * @since 7.3
-   */
-  public static final String SECURITY_HOTSPOTS_KEY = "security_hotspots";
-
-  /**
-   * SonarQube Quality Model
-   * @since 7.3
-   */
-  public static final Metric<Integer> SECURITY_HOTSPOTS = new Metric.Builder(SECURITY_HOTSPOTS_KEY, "Security Hotspots", Metric.ValueType.INT)
-    .setDescription("Security Hotspots")
-    .setDirection(Metric.DIRECTION_WORST)
-    .setQualitative(false)
-    .setDomain(DOMAIN_SECURITY)
-    .setBestValue(0.0)
-    .setOptimizedBestValue(true)
-    .create();
-
-  /**
-   * SonarQube Quality Model
-   * @since 7.3
-   */
-  public static final String NEW_SECURITY_HOTSPOTS_KEY = "new_security_hotspots";
-
-  /**
-   * SonarQube Quality Model
-   * @since 7.3
-   */
-  public static final Metric<Integer> NEW_SECURITY_HOTSPOTS = new Metric.Builder(NEW_SECURITY_HOTSPOTS_KEY, "New Security Hotspots", Metric.ValueType.INT)
-    .setDescription("New Security Hotspots")
-    .setDirection(Metric.DIRECTION_WORST)
-    .setQualitative(true)
-    .setDomain(DOMAIN_SECURITY)
-    .setBestValue(0.0)
-    .setOptimizedBestValue(true)
-    .setDeleteHistoricalData(true)
-    .create();
-
   // --------------------------------------------------------------------------------------------------------------------
   //
   // DESIGN