< prev index next >

bots/mlbridge/src/main/java/org/openjdk/skara/bots/mlbridge/PullRequestInstance.java

Print this page
@@ -21,25 +21,33 @@
   * questions.
   */
  package org.openjdk.skara.bots.mlbridge;
  
  import org.openjdk.skara.host.PullRequest;
+ import org.openjdk.skara.host.network.URIBuilder;
  import org.openjdk.skara.vcs.*;
+ import org.openjdk.skara.vcs.openjdk.Issue;
  
  import java.io.*;
+ import java.net.URI;
  import java.nio.file.Path;
+ import java.util.Optional;
  import java.util.stream.Collectors;
  
  class PullRequestInstance {
      private final PullRequest pr;
      private final Repository localRepo;
      private final Hash targetHash;
      private final Hash headHash;
      private final Hash baseHash;
+     private final URI issueTracker;
+     private final String projectPrefix;
  
-     PullRequestInstance(Path localRepoPath, PullRequest pr) {
+     PullRequestInstance(Path localRepoPath, PullRequest pr, URI issueTracker, String projectPrefix) {
          this.pr = pr;
+         this.issueTracker = issueTracker;
+         this.projectPrefix = projectPrefix;
  
          // Materialize the PR's target ref
          try {
              var repository = pr.repository();
              localRepo = Repository.materialize(localRepoPath, repository.getUrl(), pr.getTargetRef());

@@ -99,10 +107,15 @@
          } catch (IOException e) {
              throw new UncheckedIOException(e);
          }
      }
  
+     Optional<String> issueUrl() {
+         var issue = Issue.fromString(pr.getTitle());
+         return issue.map(value -> URIBuilder.base(issueTracker).appendPath(projectPrefix + "-" + value.id()).build().toString());
+     }
+ 
      @FunctionalInterface
      interface CommitFormatter {
          String format(Commit commit);
      }
  
< prev index next >