diff --git a/bots/mlbridge/src/main/java/org/openjdk/skara/bots/mlbridge/ArchiveWorkItem.java b/bots/mlbridge/src/main/java/org/openjdk/skara/bots/mlbridge/ArchiveWorkItem.java index abc19832f..a10cc7a88 100644 --- a/bots/mlbridge/src/main/java/org/openjdk/skara/bots/mlbridge/ArchiveWorkItem.java +++ b/bots/mlbridge/src/main/java/org/openjdk/skara/bots/mlbridge/ArchiveWorkItem.java @@ -33,9 +33,10 @@ import java.nio.file.Path; import java.time.Duration; import java.util.*; -import java.util.function.Consumer; +import java.util.function.*; import java.util.logging.Logger; import java.util.regex.Pattern; +import java.util.stream.Collectors; class ArchiveWorkItem implements WorkItem { private final PullRequest pr; @@ -301,7 +302,16 @@ public void run(Path scratchPath) { pushMbox(archiveRepo, "Adding comments for PR " + bot.codeRepo().getName() + "/" + pr.getId()); // Finally post all new mails to the actual list - newMails.forEach(list::post); + for (var newMail : newMails) { + var filteredHeaders = newMail.headers().stream() + .filter(header -> !header.startsWith("PR-")) + .collect(Collectors.toMap(Function.identity(), + newMail::headerValue)); + var filteredEmail = Email.from(newMail) + .replaceHeaders(filteredHeaders) + .build(); + list.post(filteredEmail); + } } @Override diff --git a/bots/mlbridge/src/main/java/org/openjdk/skara/bots/mlbridge/ReviewArchive.java b/bots/mlbridge/src/main/java/org/openjdk/skara/bots/mlbridge/ReviewArchive.java index 0ad00ba11..4c0e7d644 100644 --- a/bots/mlbridge/src/main/java/org/openjdk/skara/bots/mlbridge/ReviewArchive.java +++ b/bots/mlbridge/src/main/java/org/openjdk/skara/bots/mlbridge/ReviewArchive.java @@ -5,7 +5,6 @@ import org.openjdk.skara.host.*; import org.openjdk.skara.vcs.Hash; -import java.io.*; import java.net.URI; import java.nio.charset.StandardCharsets; import java.security.*; @@ -184,12 +183,7 @@ void create(URI webrev) { } private String latestHeadPrefix() { - try { - var latestCommit = prInstance.localRepo().lookup(prInstance.headHash()).orElseThrow(RuntimeException::new); - return String.format("[Rev %02d]", revisionCount()); - } catch (IOException e) { - throw new UncheckedIOException(e); - } + return String.format("[Rev %02d]", revisionCount()); } void addFull(URI webrev) { diff --git a/bots/mlbridge/src/test/java/org/openjdk/skara/bots/mlbridge/MailingListBridgeBotTests.java b/bots/mlbridge/src/test/java/org/openjdk/skara/bots/mlbridge/MailingListBridgeBotTests.java index a9f288974..ddcd6fbb5 100644 --- a/bots/mlbridge/src/test/java/org/openjdk/skara/bots/mlbridge/MailingListBridgeBotTests.java +++ b/bots/mlbridge/src/test/java/org/openjdk/skara/bots/mlbridge/MailingListBridgeBotTests.java @@ -881,6 +881,7 @@ void rebased(TestInfo testInfo) throws IOException { for (var newMail : conversations.get(0).allMessages()) { assertEquals(noreplyAddress(archive), newMail.author().address()); assertEquals(sender, newMail.sender()); + assertFalse(newMail.hasHeader("PR-Head-Hash")); } assertEquals("Re: [Rev 01]: RFR: This is a pull request", conversations.get(0).allMessages().get(1).subject()); } diff --git a/email/src/main/java/org/openjdk/skara/email/EmailBuilder.java b/email/src/main/java/org/openjdk/skara/email/EmailBuilder.java index a1ebb7a04..6aa09e66a 100644 --- a/email/src/main/java/org/openjdk/skara/email/EmailBuilder.java +++ b/email/src/main/java/org/openjdk/skara/email/EmailBuilder.java @@ -92,6 +92,12 @@ public EmailBuilder headers(Map headers) { return this; } + public EmailBuilder replaceHeaders(Map headers) { + this.headers.clear(); + this.headers.putAll(headers); + return this; + } + public EmailBuilder date(ZonedDateTime date) { this.date = date; return this;