diff options
author | Léo Geoffroy <leo.geoffroy@sonarsource.com> | 2024-10-18 17:41:03 +0200 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2024-10-18 20:03:11 +0000 |
commit | a063c19e012fafa748fe8d3269482e758697c05b (patch) | |
tree | 2c06a996ed70d4485519c4c7cdc2b53c79f26b98 /server/sonar-webserver-core/src/main/java | |
parent | d46582652ab35d9e24f6486380aedf10ba98d04a (diff) | |
download | sonarqube-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.java | 11 |
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); } |