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 56971d2ac..8d5226494 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 @@ -155,7 +155,7 @@ private void updateWebrevComment(List comments, int index, List closedBy() { return Optional.empty(); } + + @Override + public URI filesUrl(Hash hash) { + return null; + } } 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 72f8fbbe4..94f9b2a02 100644 --- a/forge/src/main/java/org/openjdk/skara/forge/PullRequest.java +++ b/forge/src/main/java/org/openjdk/skara/forge/PullRequest.java @@ -161,4 +161,6 @@ public interface PullRequest extends Issue { * @return */ void setTargetRef(String targetRef); + + URI filesUrl(Hash hash); } diff --git a/forge/src/main/java/org/openjdk/skara/forge/github/GitHubPullRequest.java b/forge/src/main/java/org/openjdk/skara/forge/github/GitHubPullRequest.java index 99bf07591..ea08db5bb 100644 --- a/forge/src/main/java/org/openjdk/skara/forge/github/GitHubPullRequest.java +++ b/forge/src/main/java/org/openjdk/skara/forge/github/GitHubPullRequest.java @@ -738,4 +738,10 @@ public Optional closedBy() { .reduce((a, b) -> b) .map(e -> host.parseUserObject(e.get("actor"))); } + + @Override + public URI filesUrl(Hash hash) { + var endpoint = "/" + repository.name() + "/pull/" + id() + "/files/" + hash.hex(); + return host.getWebURI(endpoint); + } } diff --git a/forge/src/main/java/org/openjdk/skara/forge/gitlab/GitLabMergeRequest.java b/forge/src/main/java/org/openjdk/skara/forge/gitlab/GitLabMergeRequest.java index 1117ec236..f118bd68c 100644 --- a/forge/src/main/java/org/openjdk/skara/forge/gitlab/GitLabMergeRequest.java +++ b/forge/src/main/java/org/openjdk/skara/forge/gitlab/GitLabMergeRequest.java @@ -788,4 +788,10 @@ public Optional closedBy() { return Optional.of(host.parseAuthorObject(json.get("closed_by").asObject())); } + + @Override + public URI filesUrl(Hash hash) { + var endpoint = "/" + repository.name() + "/-/merge_requests/" + id() + "/diffs?commit_id=" + hash.hex(); + return host.getWebUri(endpoint); + } } diff --git a/test/src/main/java/org/openjdk/skara/test/TestPullRequest.java b/test/src/main/java/org/openjdk/skara/test/TestPullRequest.java index cfd250a69..e18b5ba57 100644 --- a/test/src/main/java/org/openjdk/skara/test/TestPullRequest.java +++ b/test/src/main/java/org/openjdk/skara/test/TestPullRequest.java @@ -257,4 +257,9 @@ public Diff diff() { throw new UncheckedIOException(e); } } + + @Override + public URI filesUrl(Hash hash) { + return URI.create(webUrl().toString() + "/files/" + hash.hex()); + } }