210 for (var readyComment : bot.readyComments().entrySet()) {
211 var commentFound = false;
212 for (var comment : comments) {
213 if (comment.author().userName().equals(readyComment.getKey())) {
214 var matcher = readyComment.getValue().matcher(comment.body());
215 if (matcher.find()) {
216 commentFound = true;
217 break;
218 }
219 }
220 }
221 if (!commentFound) {
222 log.fine("PR is not yet ready - missing ready comment from '" + readyComment.getKey() +
223 "containing '" + readyComment.getValue().pattern() + "'");
224 return;
225 }
226 }
227 }
228
229 var census = CensusInstance.create(bot.censusRepo(), bot.censusRef(), scratchPath.resolve("census"), pr);
230 var prInstance = new PullRequestInstance(scratchPath.resolve("mlbridge-mergebase"), pr);
231 var reviewArchive = new ReviewArchive(bot.emailAddress(), prInstance, census, sentMails);
232 var webrevPath = scratchPath.resolve("mlbridge-webrevs");
233 var listServer = MailingListServerFactory.createMailmanServer(bot.listArchive(), bot.smtpServer());
234 var list = listServer.getList(bot.listAddress().address());
235
236 // First post
237 if (sentMails.isEmpty()) {
238 log.fine("Creating new PR review archive");
239 var webrev = bot.webrevStorage().createAndArchive(prInstance, webrevPath, prInstance.baseHash(),
240 prInstance.headHash(), "00");
241 reviewArchive.create(webrev);
242 updateWebrevComment(comments, 0, webrev, null);
243 } else {
244 var latestHead = reviewArchive.latestHead();
245
246 // Check if the head has changed
247 if (!pr.getHeadHash().equals(latestHead)) {
248 log.fine("Head hash change detected: current: " + pr.getHeadHash() + " - last: " + latestHead);
249
250 var latestBase = reviewArchive.latestBase();
|
210 for (var readyComment : bot.readyComments().entrySet()) {
211 var commentFound = false;
212 for (var comment : comments) {
213 if (comment.author().userName().equals(readyComment.getKey())) {
214 var matcher = readyComment.getValue().matcher(comment.body());
215 if (matcher.find()) {
216 commentFound = true;
217 break;
218 }
219 }
220 }
221 if (!commentFound) {
222 log.fine("PR is not yet ready - missing ready comment from '" + readyComment.getKey() +
223 "containing '" + readyComment.getValue().pattern() + "'");
224 return;
225 }
226 }
227 }
228
229 var census = CensusInstance.create(bot.censusRepo(), bot.censusRef(), scratchPath.resolve("census"), pr);
230 var jbs = census.configuration().general().jbs();
231 if (jbs == null) {
232 jbs = census.configuration().general().project();
233 }
234 var prInstance = new PullRequestInstance(scratchPath.resolve("mlbridge-mergebase"), pr, bot.issueTracker(),
235 jbs.toUpperCase());
236 var reviewArchive = new ReviewArchive(bot.emailAddress(), prInstance, census, sentMails);
237 var webrevPath = scratchPath.resolve("mlbridge-webrevs");
238 var listServer = MailingListServerFactory.createMailmanServer(bot.listArchive(), bot.smtpServer());
239 var list = listServer.getList(bot.listAddress().address());
240
241 // First post
242 if (sentMails.isEmpty()) {
243 log.fine("Creating new PR review archive");
244 var webrev = bot.webrevStorage().createAndArchive(prInstance, webrevPath, prInstance.baseHash(),
245 prInstance.headHash(), "00");
246 reviewArchive.create(webrev);
247 updateWebrevComment(comments, 0, webrev, null);
248 } else {
249 var latestHead = reviewArchive.latestHead();
250
251 // Check if the head has changed
252 if (!pr.getHeadHash().equals(latestHead)) {
253 log.fine("Head hash change detected: current: " + pr.getHeadHash() + " - last: " + latestHead);
254
255 var latestBase = reviewArchive.latestBase();
|