aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-webserver-core/src/main/java
diff options
context:
space:
mode:
authorLéo Geoffroy <leo.geoffroy@sonarsource.com>2024-10-18 17:41:03 +0200
committersonartech <sonartech@sonarsource.com>2024-10-18 20:03:11 +0000
commita063c19e012fafa748fe8d3269482e758697c05b (patch)
tree2c06a996ed70d4485519c4c7cdc2b53c79f26b98 /server/sonar-webserver-core/src/main/java
parentd46582652ab35d9e24f6486380aedf10ba98d04a (diff)
downloadsonarqube-a063c19e012fafa748fe8d3269482e758697c05b.tar.gz
sonarqube-a063c19e012fafa748fe8d3269482e758697c05b.zip
SONAR-23259 add changelog management for impacts
Co-authored-by: OrlovAlexander <alexander.orlov@sonarsource.com>
Diffstat (limited to 'server/sonar-webserver-core/src/main/java')
-rw-r--r--server/sonar-webserver-core/src/main/java/org/sonar/server/rule/registration/QualityProfileChangesUpdater.java11
1 files changed, 10 insertions, 1 deletions
diff --git a/server/sonar-webserver-core/src/main/java/org/sonar/server/rule/registration/QualityProfileChangesUpdater.java b/server/sonar-webserver-core/src/main/java/org/sonar/server/rule/registration/QualityProfileChangesUpdater.java
index 8f55e1962a8..1573c4a17c9 100644
--- a/server/sonar-webserver-core/src/main/java/org/sonar/server/rule/registration/QualityProfileChangesUpdater.java
+++ b/server/sonar-webserver-core/src/main/java/org/sonar/server/rule/registration/QualityProfileChangesUpdater.java
@@ -25,6 +25,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
+import java.util.stream.Stream;
import org.jetbrains.annotations.NotNull;
import org.sonar.api.issue.impact.SoftwareQuality;
import org.sonar.core.platform.SonarQubeVersion;
@@ -53,8 +54,11 @@ public class QualityProfileChangesUpdater {
List<QProfileChangeDto> changesToPersist = pluginRuleUpdates.stream()
.flatMap(pluginRuleUpdate -> {
RuleChangeDto ruleChangeDto = createNewRuleChange(pluginRuleUpdate);
- insertRuleChange(dbSession, ruleChangeDto);
+ if (!hasChanges(ruleChangeDto)) {
+ return Stream.empty();
+ }
+ insertRuleChange(dbSession, ruleChangeDto);
return findQualityProfilesForRule(dbSession, pluginRuleUpdate.getRuleUuid()).stream()
.map(qualityProfileUuid -> buildQprofileChangeDtoForRuleChange(qualityProfileUuid, ruleChangeDto));
}).toList();
@@ -64,6 +68,10 @@ public class QualityProfileChangesUpdater {
}
}
+ private static boolean hasChanges(RuleChangeDto ruleChangeDto) {
+ return ruleChangeDto.getNewCleanCodeAttribute() != ruleChangeDto.getOldCleanCodeAttribute() || !ruleChangeDto.getRuleImpactChanges().isEmpty();
+ }
+
private RuleChangeDto createNewRuleChange(PluginRuleUpdate pluginRuleUpdate) {
RuleChangeDto ruleChangeDto = new RuleChangeDto();
ruleChangeDto.setUuid(uuidFactory.create());
@@ -81,6 +89,7 @@ public class QualityProfileChangesUpdater {
.map(ActiveRuleDto::getProfileUuid)
.collect(Collectors.toSet());
}
+
private void insertRuleChange(DbSession dbSession, RuleChangeDto ruleChangeDto) {
dbClient.ruleChangeDao().insert(dbSession, ruleChangeDto);
}