< prev index next >

bots/pr/src/main/java/org/openjdk/skara/bots/pr/CheckRun.java

Print this page
@@ -261,31 +261,40 @@
          } else {
              return Optional.empty();
          }
      }
  
-     private String getStatusMessage(List<Review> reviews, PullRequestCheckIssueVisitor visitor) {
+     private String getStatusMessage(List<Comment> comments, List<Review> reviews, PullRequestCheckIssueVisitor visitor) {
          var progressBody = new StringBuilder();
          progressBody.append("## Progress\n");
          progressBody.append(getChecksList(visitor));
  
          var issue = Issue.fromString(pr.title());
          if (issueProject != null && issue.isPresent()) {
-             progressBody.append("\n\n## Issue\n");
-             var iss = issueProject.issue(issue.get().id());
-             if (iss.isPresent()) {
-                 progressBody.append("[");
-                 progressBody.append(iss.get().id());
-                 progressBody.append("](");
-                 progressBody.append(iss.get().webUrl());
-                 progressBody.append("): ");
-                 progressBody.append(iss.get().title());
-                 progressBody.append("\n");
-             } else {
-                 progressBody.append("⚠️ Failed to retrieve information on issue `");
-                 progressBody.append(issue.get().id());
-                 progressBody.append("`.\n");
+             var allIssues = new ArrayList<Issue>();
+             allIssues.add(issue.get());
+             allIssues.addAll(SolvesTracker.currentSolved(pr.repository().forge().currentUser(), comments));
+             progressBody.append("\n\n## Issue");
+             if (allIssues.size() > 1) {
+                 progressBody.append("s");
+             }
+             progressBody.append("\n");
+             for (var currentIssue : allIssues) {
+                 var iss = issueProject.issue(currentIssue.id());
+                 if (iss.isPresent()) {
+                     progressBody.append("[");
+                     progressBody.append(iss.get().id());
+                     progressBody.append("](");
+                     progressBody.append(iss.get().webUrl());
+                     progressBody.append("): ");
+                     progressBody.append(iss.get().title());
+                     progressBody.append("\n");
+                 } else {
+                     progressBody.append("⚠️ Failed to retrieve information on issue `");
+                     progressBody.append(currentIssue.id());
+                     progressBody.append("`.\n");
+                 }
              }
          }
  
          getReviewersList(reviews).ifPresent(reviewers -> {
              progressBody.append("\n\n## Approvers\n");

@@ -475,11 +484,11 @@
              var additionalErrors = botSpecificChecks();
              updateCheckBuilder(checkBuilder, visitor, additionalErrors);
              updateReadyForReview(visitor, additionalErrors);
  
              // Calculate and update the status message if needed
-             var statusMessage = getStatusMessage(activeReviews, visitor);
+             var statusMessage = getStatusMessage(comments, activeReviews, visitor);
              var updatedBody = updateStatusMessage(statusMessage);
  
              // Post / update approval messages (only needed if the review itself can't contain a body)
              if (!pr.repository().forge().supportsReviewBody()) {
                  updateReviewedMessages(comments, allReviews);
< prev index next >