diff --git a/bots/bridgekeeper/src/main/java/org/openjdk/skara/bots/bridgekeeper/PullRequestCloserBot.java b/bots/bridgekeeper/src/main/java/org/openjdk/skara/bots/bridgekeeper/PullRequestCloserBot.java index 7ead95f54..2752d0acd 100644 --- a/bots/bridgekeeper/src/main/java/org/openjdk/skara/bots/bridgekeeper/PullRequestCloserBot.java +++ b/bots/bridgekeeper/src/main/java/org/openjdk/skara/bots/bridgekeeper/PullRequestCloserBot.java @@ -86,10 +86,7 @@ public boolean concurrentWith(WorkItem other) { return true; } PullRequestCloserBotWorkItem otherItem = (PullRequestCloserBotWorkItem)other; - if (!pr.id().equals(otherItem.pr.id())) { - return true; - } - if (!repository.name().equals(otherItem.repository.name())) { + if (!pr.isSame(otherItem.pr)) { return true; } return false; diff --git a/bots/bridgekeeper/src/main/java/org/openjdk/skara/bots/bridgekeeper/PullRequestPrunerBot.java b/bots/bridgekeeper/src/main/java/org/openjdk/skara/bots/bridgekeeper/PullRequestPrunerBot.java index 54c71571b..d771a7e05 100644 --- a/bots/bridgekeeper/src/main/java/org/openjdk/skara/bots/bridgekeeper/PullRequestPrunerBot.java +++ b/bots/bridgekeeper/src/main/java/org/openjdk/skara/bots/bridgekeeper/PullRequestPrunerBot.java @@ -49,10 +49,7 @@ public boolean concurrentWith(WorkItem other) { return true; } PullRequestPrunerBotWorkItem otherItem = (PullRequestPrunerBotWorkItem) other; - if (!pr.id().equals(otherItem.pr.id())) { - return true; - } - if (!pr.repository().name().equals(otherItem.pr.repository().name())) { + if (!pr.isSame(otherItem.pr)) { return true; } return false; 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 4f428830b..0a268cfeb 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 @@ -70,10 +70,7 @@ public boolean concurrentWith(WorkItem other) { } return false; } - if (!pr.id().equals(otherArchiveItem.pr.id())) { - return true; - } - if (!bot.codeRepo().name().equals(otherArchiveItem.bot.codeRepo().name())) { + if (!pr.isSame(otherArchiveItem.pr)) { return true; } return false; diff --git a/bots/mlbridge/src/main/java/org/openjdk/skara/bots/mlbridge/CommentPosterWorkItem.java b/bots/mlbridge/src/main/java/org/openjdk/skara/bots/mlbridge/CommentPosterWorkItem.java index 4ec69943d..ccb1121b9 100644 --- a/bots/mlbridge/src/main/java/org/openjdk/skara/bots/mlbridge/CommentPosterWorkItem.java +++ b/bots/mlbridge/src/main/java/org/openjdk/skara/bots/mlbridge/CommentPosterWorkItem.java @@ -55,7 +55,7 @@ public boolean concurrentWith(WorkItem other) { return true; } CommentPosterWorkItem otherItem = (CommentPosterWorkItem) other; - if (!pr.equals(otherItem.pr)) { + if (!pr.isSame(otherItem.pr)) { return true; } var otherItemIds = otherItem.newMessages.stream() diff --git a/bots/notify/src/main/java/org/openjdk/skara/bots/notify/PullRequestWorkItem.java b/bots/notify/src/main/java/org/openjdk/skara/bots/notify/PullRequestWorkItem.java index 4c8272340..d324c9a97 100644 --- a/bots/notify/src/main/java/org/openjdk/skara/bots/notify/PullRequestWorkItem.java +++ b/bots/notify/src/main/java/org/openjdk/skara/bots/notify/PullRequestWorkItem.java @@ -160,10 +160,7 @@ public boolean concurrentWith(WorkItem other) { return true; } PullRequestWorkItem otherItem = (PullRequestWorkItem)other; - if (!pr.id().equals(otherItem.pr.id())) { - return true; - } - if (!pr.repository().name().equals(otherItem.pr.repository().name())) { + if (!pr.isSame(otherItem.pr)) { return true; } return false; diff --git a/bots/pr/src/main/java/org/openjdk/skara/bots/pr/PullRequestWorkItem.java b/bots/pr/src/main/java/org/openjdk/skara/bots/pr/PullRequestWorkItem.java index 5c1b783ec..a779da1b8 100644 --- a/bots/pr/src/main/java/org/openjdk/skara/bots/pr/PullRequestWorkItem.java +++ b/bots/pr/src/main/java/org/openjdk/skara/bots/pr/PullRequestWorkItem.java @@ -44,10 +44,7 @@ public final boolean concurrentWith(WorkItem other) { return true; } PullRequestWorkItem otherItem = (PullRequestWorkItem)other; - if (!pr.id().equals(otherItem.pr.id())) { - return true; - } - if (!pr.repository().name().equals(otherItem.pr.repository().name())) { + if (!pr.isSame(otherItem.pr)) { return true; } return false; diff --git a/bots/submit/src/main/java/org/openjdk/skara/bots/submit/SubmitBotWorkItem.java b/bots/submit/src/main/java/org/openjdk/skara/bots/submit/SubmitBotWorkItem.java index 1faf887b0..2411e5c77 100644 --- a/bots/submit/src/main/java/org/openjdk/skara/bots/submit/SubmitBotWorkItem.java +++ b/bots/submit/src/main/java/org/openjdk/skara/bots/submit/SubmitBotWorkItem.java @@ -58,10 +58,7 @@ public boolean concurrentWith(WorkItem other) { if (!executor.checkName().equals(otherItem.executor.checkName())) { return true; } - if (!pr.id().equals(otherItem.pr.id())) { - return true; - } - if (!bot.repository().name().equals(otherItem.bot.repository().name())) { + if (!pr.isSame(otherItem.pr)) { return true; } return false; diff --git a/bots/tester/src/main/java/org/openjdk/skara/bots/tester/TestUpdateNeededWorkItem.java b/bots/tester/src/main/java/org/openjdk/skara/bots/tester/TestUpdateNeededWorkItem.java index ce48c4b07..de70e60c4 100644 --- a/bots/tester/src/main/java/org/openjdk/skara/bots/tester/TestUpdateNeededWorkItem.java +++ b/bots/tester/src/main/java/org/openjdk/skara/bots/tester/TestUpdateNeededWorkItem.java @@ -54,10 +54,10 @@ public boolean concurrentWith(WorkItem other) { return true; } var o = (TestUpdateNeededWorkItem) other; - if (!pr.repository().url().equals(o.pr.repository().url())) { + if (!pr.isSame(o.pr)) { return true; } - return !pr.id().equals(o.pr.id()); + return false; } @Override diff --git a/bots/tester/src/main/java/org/openjdk/skara/bots/tester/TestWorkItem.java b/bots/tester/src/main/java/org/openjdk/skara/bots/tester/TestWorkItem.java index 0d3efe4bb..2fc7618f4 100644 --- a/bots/tester/src/main/java/org/openjdk/skara/bots/tester/TestWorkItem.java +++ b/bots/tester/src/main/java/org/openjdk/skara/bots/tester/TestWorkItem.java @@ -71,10 +71,10 @@ public boolean concurrentWith(WorkItem other) { return true; } var o = (TestWorkItem) other; - if (!repository.url().equals(o.repository.url())) { + if (!pr.isSame(o.pr)) { return true; } - return !pr.id().equals(o.pr.id()); + return false; } diff --git a/forge/src/main/java/org/openjdk/skara/forge/PullRequest.java b/forge/src/main/java/org/openjdk/skara/forge/PullRequest.java index 94f9b2a02..bca4468e0 100644 --- a/forge/src/main/java/org/openjdk/skara/forge/PullRequest.java +++ b/forge/src/main/java/org/openjdk/skara/forge/PullRequest.java @@ -163,4 +163,13 @@ public interface PullRequest extends Issue { void setTargetRef(String targetRef); URI filesUrl(Hash hash); + + /** + * Returns true if this PullRequest represents the same pull request as the other. + */ + default boolean isSame(PullRequest other) { + return id().equals(other.id()) + && repository().name().equals(other.repository().name()) + && repository().forge().name().equals(other.repository().forge().name()); + } }