]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-10344 fix QualityGateChange on Branch analysis.
authorGuillaume Jambet <guillaume.jambet@sonarsource.com>
Thu, 22 Feb 2018 17:44:57 +0000 (18:44 +0100)
committerGuillaume Jambet <guillaume.jambet@gmail.com>
Thu, 1 Mar 2018 14:21:05 +0000 (15:21 +0100)
server/sonar-server/src/main/java/org/sonar/server/webhook/WebHooksImpl.java

index a5497710144a3be461e37637999a406be96d4f62..5036e81a92c64a263a54380259bf1db1764a967a 100644 (file)
@@ -61,12 +61,19 @@ public class WebHooksImpl implements WebHooks {
 
   private Stream<WebhookDto> readWebHooksFrom(String projectUuid) {
     try (DbSession dbSession = dbClient.openSession(false)) {
-      Optional<ComponentDto> componentDto = ofNullable(dbClient.componentDao().selectByUuid(dbSession, projectUuid).orNull());
-      ComponentDto projectDto = checkStateWithOptional(componentDto, "the requested project '%s' was not found", projectUuid);
+
+      Optional<ComponentDto> optionalComponentDto = ofNullable(dbClient.componentDao().selectByUuid(dbSession, projectUuid).orNull());
+      ComponentDto componentDto = checkStateWithOptional(optionalComponentDto, "the requested project '%s' was not found", projectUuid);
+
+      if (componentDto.getMainBranchProjectUuid() != null && !componentDto.uuid().equals(componentDto.getMainBranchProjectUuid())) {
+        Optional<ComponentDto> mainBranchComponentDto = ofNullable(dbClient.componentDao().selectByUuid(dbSession, componentDto.getMainBranchProjectUuid()).orNull());
+        componentDto = checkStateWithOptional(mainBranchComponentDto, "the requested project '%s' was not found", projectUuid);
+      }
+
       WebhookDao dao = dbClient.webhookDao();
       return Stream.concat(
-        dao.selectByProject(dbSession, projectDto).stream(),
-        dao.selectByOrganizationUuid(dbSession, projectDto.getOrganizationUuid()).stream());
+        dao.selectByProject(dbSession, componentDto).stream(),
+        dao.selectByOrganizationUuid(dbSession, componentDto.getOrganizationUuid()).stream());
     }
   }