< prev index next > bots/pr/src/main/java/org/openjdk/skara/bots/pr/CheckRun.java
Print this page
} 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");
} 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");
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);
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 >