< prev index next >

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

Print this page
*** 261,31 ***
          } else {
              return Optional.empty();
          }
      }
  
!     private String getStatusMessage(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");
              }
          }
  
          getReviewersList(reviews).ifPresent(reviewers -> {
              progressBody.append("\n\n## Approvers\n");
--- 261,40 ---
          } else {
              return Optional.empty();
          }
      }
  
!     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()) {
!             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 ***
              var additionalErrors = botSpecificChecks();
              updateCheckBuilder(checkBuilder, visitor, additionalErrors);
              updateReadyForReview(visitor, additionalErrors);
  
              // Calculate and update the status message if needed
!             var statusMessage = getStatusMessage(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);
--- 484,11 ---
              var additionalErrors = botSpecificChecks();
              updateCheckBuilder(checkBuilder, visitor, additionalErrors);
              updateReadyForReview(visitor, additionalErrors);
  
              // Calculate and update the status message if needed
!             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 >