< prev index next >

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

Print this page

 30 import org.openjdk.skara.vcs.openjdk.Issue;
 31 import org.openjdk.skara.vcs.openjdk.*;
 32 
 33 import java.io.*;
 34 import java.nio.file.Path;
 35 import java.util.*;
 36 import java.util.stream.Collectors;
 37 
 38 class PullRequestInstance {
 39     private final PullRequest pr;
 40     private final Repository localRepo;
 41     private final Hash targetHash;
 42     private final Hash headHash;
 43     private final Hash baseHash;
 44 
 45     PullRequestInstance(Path localRepoPath, PullRequest pr) throws IOException  {
 46         this.pr = pr;
 47         var repository = pr.repository();
 48 
 49         // Materialize the PR's target ref
 50         localRepo = Repository.materialize(localRepoPath, repository.url(), pr.targetRef());

 51         targetHash = localRepo.fetch(repository.url(), pr.targetRef());
 52         headHash = localRepo.fetch(repository.url(), pr.headHash().hex());
 53         baseHash = localRepo.mergeBase(targetHash, headHash);
 54     }
 55 
 56     /**
 57      * The Review list is in chronological order, the latest one from a particular reviewer is the
 58      * one that is "active".
 59      * @param allReviews
 60      * @return
 61      */
 62     static List<Review> filterActiveReviews(List<Review> allReviews) {
 63         var reviewPerUser = new LinkedHashMap<HostUser, Review>();
 64         for (var review : allReviews) {
 65             reviewPerUser.put(review.reviewer(), review);
 66         }
 67         return new ArrayList<>(reviewPerUser.values());
 68     }
 69 
 70     private String commitMessage(List<Review> activeReviews, Namespace namespace, boolean isMerge) throws IOException {

 30 import org.openjdk.skara.vcs.openjdk.Issue;
 31 import org.openjdk.skara.vcs.openjdk.*;
 32 
 33 import java.io.*;
 34 import java.nio.file.Path;
 35 import java.util.*;
 36 import java.util.stream.Collectors;
 37 
 38 class PullRequestInstance {
 39     private final PullRequest pr;
 40     private final Repository localRepo;
 41     private final Hash targetHash;
 42     private final Hash headHash;
 43     private final Hash baseHash;
 44 
 45     PullRequestInstance(Path localRepoPath, PullRequest pr) throws IOException  {
 46         this.pr = pr;
 47         var repository = pr.repository();
 48 
 49         // Materialize the PR's target ref
 50         localRepo = Repository.materialize(localRepoPath, repository.url(),
 51                                            "+" + pr.targetRef() + ":pr_prinstance_" + repository.name());
 52         targetHash = localRepo.fetch(repository.url(), pr.targetRef());
 53         headHash = localRepo.fetch(repository.url(), pr.headHash().hex());
 54         baseHash = localRepo.mergeBase(targetHash, headHash);
 55     }
 56 
 57     /**
 58      * The Review list is in chronological order, the latest one from a particular reviewer is the
 59      * one that is "active".
 60      * @param allReviews
 61      * @return
 62      */
 63     static List<Review> filterActiveReviews(List<Review> allReviews) {
 64         var reviewPerUser = new LinkedHashMap<HostUser, Review>();
 65         for (var review : allReviews) {
 66             reviewPerUser.put(review.reviewer(), review);
 67         }
 68         return new ArrayList<>(reviewPerUser.values());
 69     }
 70 
 71     private String commitMessage(List<Review> activeReviews, Namespace namespace, boolean isMerge) throws IOException {
< prev index next >